0

画面に ImageView があり、それを揺らしたい (左に回転してから右に回転)。ImageView をアニメーション化する方法を知っています。これが私のコードです。

new RotateAnimation(20f, 50f,Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);

anim.setInterpolator(new LinearInterpolator());
anim.setRepeatCount(Animation.INFINITE);
anim.setDuration(700);

// Start animating the image
final ImageView splash = (ImageView) findViewById(R.id.mobileshake);
splash.startAnimation(anim);

問題は、現在 Imageview が 1 つのアニメーションをループしているが、2 つのアニメーションをループさせたい (左に回転してから右に回転) ことです。

これどうやってするの?

私の悪い英語でごめんなさい..

4

2 に答える 2

0

を使用して、2 つ (またはそれ以上) のアニメーションを組み合わせることができますAnimationSet

xml で定義されたAPI デモを使用した「シェイク」アニメーションの例があります。TranslateAnimation同様のアプローチに従うことで、探している結果を得ることができます。

于 2012-05-20T11:02:27.240 に答える
0

私は次のようにしてそれを理解し、非常にスムーズに動作します:)

final RotateAnimation anim1 = new RotateAnimation(20f, 50f,Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);
        anim1.setInterpolator(new LinearInterpolator());
        //anim1.setRepeatCount(Animation.INFINITE);
        anim1.setDuration(300);

        final RotateAnimation anim2 = new RotateAnimation(50f, 20f,Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);
        anim2.setInterpolator(new LinearInterpolator());
        //anim2.setRepeatCount(Animation.INFINITE);
        anim2.setDuration(300);

        final ImageView splash = (ImageView) findViewById(R.id.mobileshake);
        anim1.setAnimationListener(new AnimationListener(){

            public void onAnimationEnd(Animation animation) {
                // TODO Auto-generated method stub
                splash.startAnimation(anim2);
            }

            public void onAnimationRepeat(Animation animation) {
                // TODO Auto-generated method stub

            }

            public void onAnimationStart(Animation animation) {
                // TODO Auto-generated method stub

            }});
        anim2.setAnimationListener(new AnimationListener(){

            public void onAnimationEnd(Animation animation) {
                // TODO Auto-generated method stub
                splash.startAnimation(anim1);
            }

            public void onAnimationRepeat(Animation animation) {
                // TODO Auto-generated method stub

            }

            public void onAnimationStart(Animation animation) {
                // TODO Auto-generated method stub

            }});

        splash.startAnimation(anim1);
于 2012-05-20T11:09:07.577 に答える