此代码仅适用于第一个动画。虽然ImageView的最终位置并不完全是MotionEvent的点,并且动画看起来不流畅。所有其他 MotionEvent 的结果实际上都不是动画。 ImageView 仅在我触摸屏幕时出现。
这是代码。
ImageView image;
MyAnimationListener am;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
image = (ImageView)findViewById(R.id.imageView1);
am = new MyAnimationListener(image);
}
@Override
public boolean onTouchEvent(MotionEvent mEvent){
if(mEvent.getAction()==MotionEvent.ACTION_DOWN){
TranslateAnimation tAnimation = new TranslateAnimation(image.getX(),mEvent.getX(),image.getY(),mEvent.getY());
tAnimation.setDuration(500);
am.setCoordinates(mEvent.getX(), mEvent.getY());
tAnimation.setAnimationListener(am);
AnimationSet aSet = new AnimationSet(true);
aSet.addAnimation(tAnimation);
image.startAnimation(aSet);
}
return true;
}
以及 MyAnimationListener 的有趣方法。
ImageView i;
float x,y;
public MyAnimationListener(ImageView i){
this.i = i;
}
public void setCoordinates(float x, float y){
this.x = x;
this.y = y;
}
@Override
public void onAnimationEnd(Animation animation) {
i.setX(x);
i.setY(y);
}
提前致谢。
最佳答案
您可能需要调用 fillAfter ,以便在动画结束时不会重置位置。请参阅link
关于java - 我的 ImageView 的 Android 动画有什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8638100/