0

フレーム間アニメーションを行っています。私の問題は、animxmlに約10個の描画可能な画像を指定したことです。ただし、最初の2つと最後の2つだけが、すべての画像を表示しているわけではありません。この画像でも翻訳を行っています。翻訳後、フレームアニメーションのみが開始されます。翻訳が行われ、フレームアニメーションも行われていますが、すべてのフレームが表示されているわけではありません。これが私のanimxmlです。frog_01とfrog_02のみが表示されています。

<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
android:oneshot="true" >

<item
    android:drawable="@drawable/frog_01"
    android:duration="70"/>
<item
    android:drawable="@drawable/frog_02"
    android:duration="70"/>
<item
    android:drawable="@drawable/frog_03"
    android:duration="70"/>
<item
    android:drawable="@drawable/frog_04"
    android:duration="70"/>
<item
    android:drawable="@drawable/frog_05"
    android:duration="70"/>
<item
    android:drawable="@drawable/frog_04"
    android:duration="70"/>
<item
    android:drawable="@drawable/frog_03"
    android:duration="70"/>
<item
    android:drawable="@drawable/frog_02"
    android:duration="70"/>
<item
    android:drawable="@drawable/frog_01"
    android:duration="70"/>

</animation-list>

これが私が翻訳とフレームアニメーションに使用しているコードです...

public void frogAnim() {

    frogView.clearAnimation();
    final TranslateAnimation fslide2 = new TranslateAnimation(10, 65, 0, 0);
    fslide2.setDuration(400);
    fslide2.setFillAfter(true);
    fslide2.setAnimationListener(fanimationListener1);
    frogView.startAnimation(fslide2);
    c = false;
}


AnimationListener fanimationListener1 = new AnimationListener() {

    public void onAnimationEnd(Animation arg0) {
        c = true;

        frogView.setBackgroundResource(R.drawable.frog_movement);
        frogFrameAnimation = (AnimationDrawable) frogView.getBackground();
        frogFrameAnimation.start();
        playAudioFileListener(R.raw.frog, player);



        CountDownTimer count = new CountDownTimer(200, 700) {

            @Override
            public void onTick(long millisUntilFinished) {

            }

            @Override
            public void onFinish() {
                frogFrameAnimation.stop();
                titileAnimMusic(R.drawable.frog_title,
                        R.anim.alpha_fade_in1, R.raw.vo_child_frog, player);

            }
        };
        count.start();
    }

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

    public void onAnimationStart(Animation animation) {
    }
};
4

2 に答える 2

1

このコードを試してみてください...。

http://www.coderzheaven.com/2011/04/23/android-frame-animation/

=====================

クラスで

 final ImageView img =(ImageView) findViewById(R.id.imageView1);
    img.setBackgroundResource(R.layout.animation);
    img.setOnClickListener(new OnClickListener() {

        public void onClick(View v) {
            // TODO Auto-generated method stub
            AnimationDrawable anim=(AnimationDrawable) img.getBackground();
            anim.start();
        }
    });

レイアウトフォルダのanimation.xml

<animation-list android:oneshot="false"   
<item android:drawable="@drawable/animation_00031" android:duration="30"/>
<item android:drawable="@drawable/animation_00032" android:duration="30"/>
<item android:drawable="@drawable/animation_00033" android:duration="30"/>
<item android:drawable="@drawable/animation_00034" android:duration="30"/>
<item android:drawable="@drawable/animation_00035" android:duration="30"/>
<item android:drawable="@drawable/animation_00036" android:duration="30"/>
<item android:drawable="@drawable/animation_00037" android:duration="30"/>
<item android:drawable="@drawable/animation_00038" android:duration="30"/>
<item android:drawable="@drawable/animation_00039" android:duration="30"/>
<item android:drawable="@drawable/animation_00040" android:duration="30"/>
<item android:drawable="@drawable/animation_00041" android:duration="30"/>
<item android:drawable="@drawable/animation_00042" android:duration="30"/>
<item android:drawable="@drawable/animation_00043" android:duration="30"/>
<item android:drawable="@drawable/animation_00044" android:duration="30"/>
<item android:drawable="@drawable/animation_00045" android:duration="30"/>
<item android:drawable="@drawable/animation_00046" android:duration="30"/>
<item android:drawable="@drawable/animation_00047" android:duration="30"/>
<item android:drawable="@drawable/animation_00048" android:duration="30"/>
<item android:drawable="@drawable/animation_00049" android:duration="30"/>
<item android:drawable="@drawable/animation_00050" android:duration="30"/>
<item android:drawable="@drawable/animation_00051" android:duration="30"/>
<item android:drawable="@drawable/animation_00052" android:duration="30"/>
<item android:drawable="@drawable/animation_00053" android:duration="30"/>
<item android:drawable="@drawable/animation_00054" android:duration="30"/>
<item android:drawable="@drawable/animation_00055" android:duration="30"/>
<item android:drawable="@drawable/animation_00056" android:duration="30"/>
<item android:drawable="@drawable/animation_00057" android:duration="30"/>
<item android:drawable="@drawable/animation_00058" android:duration="30"/>
<item android:drawable="@drawable/animation_00059" android:duration="30"/>
<item android:drawable="@drawable/animation_00060" android:duration="30"/>
<item android:drawable="@drawable/animation_00061" android:duration="30"/>
<item android:drawable="@drawable/animation_00062" android:duration="30"/>
<item android:drawable="@drawable/animation_00063" android:duration="30"/>

main.xmlで

   <ImageView
    android:id="@+id/imageView1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerHorizontal="true"
    android:layout_centerVertical="true"
    />

私はこれを試しました、そしてそれは私のために完全に働いています...

于 2012-09-22T15:01:28.517 に答える
1

これも試してみてください.....

    img=(ImageView) findViewById(R.id.imageView1);
    img.setBackgroundResource(R.layout.animation);

    Animation animation =AnimationUtils.loadAnimation(this,R.anim.translate);
    img.startAnimation(animation);//calling translate animation

    CallDelay(1000);

public void CallDelay(long time)
{
        Handler handler = new Handler(); 
        handler.postDelayed(new Runnable()
        {           
            public void run() 
            { 

                myanimation();    
            }
        },  time); 
 }


public void myanimation()
{
  //calling frame animation
    AnimationDrawable anim=(AnimationDrawable) img.getBackground();
    anim.start();
}

1つのアニメーションの後、遅れてこの呼び出しのように試してください。

于 2012-09-24T13:05:08.867 に答える