平行移動アニメーションを使用して、画像ビューを現在の位置から画面上の固定位置に移動したいと思います。また、翻訳アニメーションがどのように機能し、どのパラメーターを正確に受け入れるのか知りたいですか?
私のコードは...
RelativeLayout.LayoutParams lParams = (LayoutParams) spreadImage
.getLayoutParams();
TranslateAnimation ta
ta = new TranslateAnimation(lParams.leftMargin,
randomLeftMarginsList.get(currentSpreadIndex),
lParams.topMargin,
ta.setAnimationListener(this);
ta.setDuration(ApplicationConstant.PUZZLE_GAME_IMAGE_SPREADING_TIME);
spreadImage.startAnimation(ta);
前もって感謝します。
アニメーションの移動は、アニメーションが適用されているレイアウトやボタン、またはビューの位置と場所を制御します。オブジェクトをx方向またはy方向に移動できます。
構文:
TranslateAnimation transAnimation= new TranslateAnimation(fromXposition, toXPosition, fromYPosition, toYPosition);
fromXposition-アニメーションを開始する場所からのx座標
toXPosition-アニメーションが終了するx座標
fromYPosition-アニメーションを開始するy座標。
toYPosition-アニメーションが終了するy座標。
1)X direction
でのみ変換する場合は、fromYPositionおよびtoYPositionをゼロに設定します。
2)Y direction
でのみ変換する場合は、fromXPositionおよびtoXPositionをゼロに設定します。
Resフォルダーにanimフォルダーを作成する別の方法があります。このフォルダーにアニメーションxmlを追加します。属性値を指定するtranslateタグを使用します。
以下のxml
Android:duration
はアニメーションの実行時間を定義します
Android:repeatCount
は番号を指定します。アニメーションを繰り返す必要がある場合、
Android:fromYDelta
は、アニメーションを開始するy座標を定義します
Android:toYDelta
は、アニメーションが終了するy座標を定義します。
line_translate.xml
<set xmlns:Android=”http://schemas.Android.com/apk/res/Android”>
<translate Android:duration=”300″ Android:repeatCount=”1 Android:fromYDelta=”0.0″ Android:toYDelta=”174.0″ />
コード:
Animation lineTranslate;
//loading xml from anim folder
Animation localAnimation = AnimationUtils.loadAnimation(this, R.anim.line_translate);
//You can now apply the animation to a view
view.startAnimation(transAnimation);
アニメーションの移動は、オブジェクトの外観を変更できますが、オブジェクト自体を変更することはできません。つまり、移動アニメーションをビューに適用すると、ビューは新しい位置に移動しますが、クリックイベントは発生しませんが、クリックイベントは以前の位置で発生します。これは、ビューがまだ元の位置にあるために発生します。
これを克服するために、実際にオブジェクトを移動するObjectAnimation
を使用できます。オブジェクトアニメーションは、実際にオブジェクトを動かす唯一のアニメーションです。 ObjectAnimator
を使用して翻訳アニメーションを作成できます。
ObjectAnimator transAnimation= ObjectAnimator.ofFloat(view, propertyName, fromX, toX);
transAnimation.setDuration(3000);//set duration
transAnimation.start();//start animation
view-これはアニメーションが適用されるビューです
propertyName-アニメーション化されているプロパティ。
FromX、toX-アニメーションが時間の経過とともにアニメーション化する値のセット。
これがあなたに良い理解を与えることを願っています。
ビューをある位置から別の位置に変換する必要があります。したがって、タスクを実行するには、以下のコードを使用する必要があります。
imgHeart.animate()
.scaleXBy(-6f)
.scaleYBy(-6f)
.alpha(.1f)
.translationX((heigthAndWidth[0] / 2) - minusWidth) // trying to make my location
.translationY(-((heigthAndWidth[1] / 2) - minusHeight))
.setDuration(1000)
.start();
NineOldAndroids を使用できます。翻訳アニメーションの例があります。