在android上使用翻译动画移动图像的问题

时间:2010-11-01 04:36:55

标签: android animation

我想在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?

2 个答案:

答案 0 :(得分:4)

我认为你需要使用

animation.setFillAfter(true); //to retain the properties after the animation finishes.

不需要onAnimationEnd事件。 不知道为什么它会转移到200, 200

答案 1 :(得分:2)

我遇到同样的问题而且我知道调用animation.setFillAfter(true)不是正确的方法,因为它只在动画的最后位置绘制了一个视图的图片,但实际视图是像以前一样的位置。也许图像没有任何问题,但如果你想用按钮或类似的东西尝试它,你会意识到它。