web-dev-qa-db-ja.com

アニメーションを右から左に表示android

膨張したレイアウトのビューアニメーションを配置できません。次のコードスニペットを使用しました

pageView.startAnimation(AnimationUtils.loadAnimation(this,R.anim.right_to_left_anim.xml));

およびxml

<set xmlns:Android="http://schemas.Android.com/apk/res/Android"
         Android:shareInterpolator="false">
     <translate Android:fromXDelta="0%" Android:toXDelta="100%"
          Android:fromYDelta="0%" Android:toYDelta="0%"
         Android:duration="700"/>

</set>

欠けているものはありますか?

ありがとう。

18
sd33din90

以下は、ビューのスライドアニメーションのコードです。

1)inFromRightAnimation

    private Animation inFromRightAnimation() {

        Animation inFromRight = new TranslateAnimation(
                Animation.RELATIVE_TO_PARENT, +1.0f,
                Animation.RELATIVE_TO_PARENT, 0.0f,
                Animation.RELATIVE_TO_PARENT, 0.0f,
                Animation.RELATIVE_TO_PARENT, 0.0f);
        inFromRight.setDuration(500);
        inFromRight.setInterpolator(new AccelerateInterpolator());
        return inFromRight;
        }

 2)outToLeftAnimation   
    private Animation outToLeftAnimation() {
    Animation outtoLeft = new TranslateAnimation(
        Animation.RELATIVE_TO_PARENT, 0.0f,
        Animation.RELATIVE_TO_PARENT, -1.0f,
        Animation.RELATIVE_TO_PARENT, 0.0f,
        Animation.RELATIVE_TO_PARENT, 0.0f);
    outtoLeft.setDuration(500);
    outtoLeft.setInterpolator(new AccelerateInterpolator());
    return outtoLeft;
    }

3)inFromLeftAnimation

    private Animation inFromLeftAnimation() {
    Animation inFromLeft = new TranslateAnimation(
        Animation.RELATIVE_TO_PARENT, -1.0f,
        Animation.RELATIVE_TO_PARENT, 0.0f,
        Animation.RELATIVE_TO_PARENT, 0.0f,
        Animation.RELATIVE_TO_PARENT, 0.0f);
    inFromLeft.setDuration(500);
    inFromLeft.setInterpolator(new AccelerateInterpolator());
    return inFromLeft;
    }

4)outToRightAnimation

    private Animation outToRightAnimation() {
    Animation outtoRight = new TranslateAnimation(
        Animation.RELATIVE_TO_PARENT, 0.0f,
        Animation.RELATIVE_TO_PARENT, +1.0f,
        Animation.RELATIVE_TO_PARENT, 0.0f,
        Animation.RELATIVE_TO_PARENT, 0.0f);
    outtoRight.setDuration(500);
    outtoRight.setInterpolator(new AccelerateInterpolator());
    return outtoRight;
    }

そして今、アニメーションを開始します

pageView.startAnimation(inFromRightAnimation());

おかげで、

72
sd33din90

私はあなたがすでに答えを受け入れていることを知っています。しかし、私はこの返事が誰かがこれを読んでいるのに役立つと思います。あなたは試すことができます。xmlを削除するから、pageView.startAnimation(AnimationUtils.loadAnimation(this,R.anim.right_to_left_anim.xml));

1
Mr Z

ビューが最初に作成されたときにアニメーション化しようとしている場合は、layoutAnimation XMLプロパティを設定するか、setLayoutAnimation()を呼び出す必要があります。

ビューが動いているように見せるには、TranslateAnimation;が必要です。この回答を参照してください: https://stackoverflow.com/a/4214490/832776 また、アニメーションを繰り返す場合は、setAnimationListener()を呼び出し、onAnimationEnd()アニメーションを再開します。

ビューを永続的に移動しようとしている場合は、これを参照してください: http://www.clingmarks.com/how-to-permanently-move-view-with-animation-effect-in-Android/4

1
Oleg Vaskevich