我想在android上将图像从0,0移动到100,100。我正在使用翻译动画:
public void moveImage() {
// move image from 0,0 to 100,100
mAnimationTranslate = new TranslateAnimation(0, 100, 0, 100);
mAnimationTranslate.setDuration(1000);
mAnimationTranslate.setAnimationListener(this);
this.startAnimation(mAnimationTranslate);
}
public void onDraw (Canvas canvas) {
super.onDraw(canvas);
canvas.drawBitmap(bmp, x, y, null);
}
public void onAnimationEnd(Animation animation) {
// stop animation and draw the image at 100,100
x = 100;
y = 100;
}
问题是当动画结束于100,100时,图像将在短时间内移动到200,200并最终返回到100,100。我的代码有问题吗?如何让图像正确停止在100,100?
答案 0 :(得分:4)
我认为你需要使用
animation.setFillAfter(true); //to retain the properties after the animation finishes.
不需要onAnimationEnd
事件。
不知道为什么它会转移到200, 200
。
答案 1 :(得分:2)
我遇到同样的问题而且我知道调用animation.setFillAfter(true)
不是正确的方法,因为它只在动画的最后位置绘制了一个视图的图片,但实际视图是像以前一样的位置。也许图像没有任何问题,但如果你想用按钮或类似的东西尝试它,你会意识到它。