2012-03-22 9 views
0

アニメーションをイメージビューに追加しています。時間ボタンが押されるまでそのアニメーション状態に留まることを希望します。ボタンを押して前の状態に移動させます ここは自分のコードです。 setFillAfterを使用すると、ボタンをクリックしてアニメーションを停止する

public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
     i=(ImageView)findViewById(R.id.imageView1); 
     d=(Button)findViewById(R.id.button1); 
     a=new AnimationSet(false); 
     ScaleAnimation s=new ScaleAnimation(0, 2, 0, 2); 
     TranslateAnimation t=new TranslateAnimation(0, 100, 0, 0); 

     a.addAnimation(s); 
     a.addAnimation(t); 
     a.setRepeatCount(0); 
     a.setDuration(500);  
     a.setFillAfter(false); 

     a.setInterpolator(new AccelerateDecelerateInterpolator()); i.clearAnimation(); 

     d.setOnClickListener(new OnClickListener() { 

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

      i.clearAnimation(); 
      } 
     }); 

     i.setOnTouchListener(new OnTouchListener() { 

      @Override 
      public boolean onTouch(View v, MotionEvent event) { 
       // TODO Auto-generated method stub 

       i.startAnimation(a); 
       System.out.println("OnTouch called>>>>>>>>>>>"); 
       return false; 
      } 
     }); 
    } 

答えて

1

変更リピートモードが

a.setRepeatMode(Animation.INFINITE); 

を無限にすると、今アニメーションリスナーをあなたがすることができます使用して復元することはできませんし、それをfalseに設定するには、アニメーションの状態のままにしないでくださいevを実行するとアニメーションを開始し、アニメーションを停止するあなたは欲しいです。 This Details example

関連する問題