0

TranslateAnimation何らかの理由でオブジェクトを新しい場所に移動するたびに、そのオブジェクトのタッチ ターゲットが古い位置に残ります。

この動作を変更するにはどうすればよいですか?

例えば。

public static void hideViewUp (View v, int duration) {

            AnimationSet animSet = new AnimationSet(true);
            animSet.setFillAfter(true);
            animSet.setDuration(duration);
            AlphaAnimation alp = new AlphaAnimation(1.0f, 0);
            TranslateAnimation translate = new TranslateAnimation(Animation.RELATIVE_TO_SELF,
                    Animation.RELATIVE_TO_SELF,
                    Animation.RELATIVE_TO_SELF,
                    -(v.getTop() + v.getHeight()));
            animSet.addAnimation(translate);
            animSet.addAnimation(alp);
            v.startAnimation(animSet);

    }
4

1 に答える 1

0

サンプル コードを投稿する必要はありません。この問題はよく知られており、一般的なものです。

TranslateAnimation および他のすべての古いタイプのアニメーションは、描画変換行列のみを変更します。これらのアニメーションは、アイテムを永続的に移動するために使用しないでください。

ビューを実際に新しい位置に移動するには、ObjectAnimator を使用します。

例を次に示します: http://www.android-app-market.com/animations-in-android-translate-animation-alpha-animation-object-animation.html

于 2015-05-21T15:41:19.823 に答える