Android アプリで無限回転アニメーションを使用しています。cancelAnimation()
回転した画像を呼び出すとImageView
、アニメーションをその位置にファイナライズせずに、画像がすぐにアニメーションの開始位置に移動します。ユーザーがアニメーションを中断することなく、よりスムーズなエクスペリエンスを得るために、それを実行する方法はありますか?
質問する
464 次
1 に答える
0
旗を立てることができます。フラグを false に設定すると、アニメーションが停止します。以下のコードを見てください。
public class MainActivity extends Activity {
ImageView img;
Button btn, btn2;
Animation myAnim;
boolean flag=true;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
img = (ImageView) findViewById(R.id.imageView1);
btn = (Button) findViewById(R.id.button1);
btn2 = (Button) findViewById(R.id.button2);
myAnim = AnimationUtils.loadAnimation(this, R.anim.rotate);
img.startAnimation(myAnim);
myAnim.setAnimationListener(new AnimationListener() {
public void onAnimationStart(Animation animation) {
System.out.println("onAnimationStart()");
}
public void onAnimationRepeat(Animation animation) {
if(flag)
System.out.println("onAnimationRepeat()");
else
myAnim.cancel();
}
public void onAnimationEnd(Animation animation) {
System.out.println("onAnimationEnd()");
}
});
btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
flag=false;
}
});
btn2.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
img.startAnimation(myAnim);
flag=true;
}
});
}
}
于 2012-12-22T14:59:32.587 に答える