2011-11-08 16 views
2

画像がありません&ボタンのクリックイベントでこの画像を表示するにはフレームアニメーションを使用しましたが、最初にボタンをクリックすると画像がシーケンスで表示されます&このボタンをクリックすると画像が表示されない時間がもう1回あります。以下は私のコードです。Androidでボタンをクリックしたときのフレームアニメーション

Animation.javaファイル: -

public class Animation extends Activity { 

    Button mBtnOK; 
    AnimationDrawable frameAnimation; 
    ImageView imgView; 

    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     mBtnOK = (Button) findViewById(R.id.mBtnOK); 
     mBtnOK.setOnClickListener(new OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       // TODO Auto-generated method stub 
       animate(); 
      } 
     }); 

    } 

    private void animate() { 
     imgView = (ImageView) findViewById(R.id.simple_anim); 
     imgView.setVisibility(ImageView.VISIBLE); 
     imgView.setBackgroundResource(R.anim.simple_animation); 
     AnimationDrawable frameAnimation = (AnimationDrawable) imgView 
       .getBackground(); 
     frameAnimation.start(); 
     frameAnimation.setOneShot(true); 
    } 
} 

アニメーションファイル: -

<?xml version="1.0" encoding="utf-8"?> 
<animation-list xmlns:android="http://schemas.android.com/apk/res/android" id="selected" android:oneshot="false"> 
    <item android:drawable="@drawable/monkey_1" android:duration="50" /> 
    <item android:drawable="@drawable/monkey_2" android:duration="50" /> 
    <item android:drawable="@drawable/monkey_3" android:duration="50" /> 
    <item android:drawable="@drawable/monkey_4" android:duration="50" /> 
    <item android:drawable="@drawable/monkey_5" android:duration="50" /> 
    <item android:drawable="@drawable/monkey_6" android:duration="50" /> 
    <item android:drawable="@drawable/monkey_7" android:duration="50" /> 
    <item android:drawable="@drawable/monkey_8" android:duration="50" /> 
    <item android:drawable="@drawable/monkey_9" android:duration="50" /> 
    <item android:drawable="@drawable/monkey_10" android:duration="50" /> 
</animation-list> 

答えて

0

@Dipak、

私はあなたが行っているのと同じ方法を使用してアニメーションを行っています。このコードを追加して、エラーが解決されることを願ってください。またもう1つは、アニメーションを実行するスレッドを使用することです。これは確かにそれをうまく実行します。

if(frameAnimation.isRunning()) { 
    frameAnimation.stop(); 
    frameAnimation.start(); 
} 
1

フレームアニメーションを再起動する唯一の方法は、最初のフレームにリセットするアニメーションを強制するフラグが含まsetVisible()を使用することです。次のようにコードのアニメーションセクションを変更する場合: AnimationDrawable frameAnimation =(AnimationDrawable)imgView.getBackground(); frameAnimation.setOneShot(true); frameAnimation.setVisible(true、true); frameAnimation.start();

アニメーションは、最初のフレームから常に開始し、ボタンをクリックするたびに完了まで実行する必要があります。アニメーションは、それを含むImageViewではなく、描画可能物自体の表示を切り替えてリセットすることもできます。

HTH

+0

frameAnimation.setVisible(true、true); frameAnimation.start();これを実行すると、アニメーションフレームが2回実行されます。 setVisible(true、true)だけが必要です。最初のtrueが表示され、2番目のtrueがアニメーションを最初の実行のように再起動します。 –

関連する問題