web-dev-qa-db-ja.com

移動アニメーションを使用して、ImageViewを現在の位置から固定位置に移動します

平行移動アニメーションを使用して、画像ビューを現在の位置から画面上の固定位置に移動したいと思います。また、翻訳アニメーションがどのように機能し、どのパラメーターを正確に受け入れるのか知りたいですか?

私のコードは...

       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);

前もって感謝します。

7

アニメーションの移動は、アニメーションが適用されているレイアウトやボタン、またはビューの位置と場所を制御します。オブジェクトを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-アニメーションが時間の経過とともにアニメーション化する値のセット。

これがあなたに良い理解を与えることを願っています。

18
GrIsHu

ビューをある位置から別の位置に変換する必要があります。したがって、タスクを実行するには、以下のコードを使用する必要があります。

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();
7
duggu

NineOldAndroids を使用できます。翻訳アニメーションの例があります。

2
Sivakumar S