Проблема при перемещении изображения с помощью анимации перевода на Android - PullRequest
2 голосов
/ 01 ноября 2010

Я хочу переместить изображение с 0,0 на 100,100 на Android. Для этого я использую анимацию перевода:

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 ]

4 голосов
/ 01 ноября 2010

Я думаю, вам нужно использовать

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

Нет необходимости в событии onAnimationEnd.Не уверен, почему он переходит на 200, 200.

2 голосов
/ 09 сентября 2011

У меня та же проблема с этим, и я знаю, что вызов animation.setFillAfter(true) - неправильный способ, потому что он рисует только представление вида в последней позиции анимации, но реальный вид находится на позиции как раньше. Может быть, с изображением проблем нет, но вы поймете это, если захотите попробовать его с помощью кнопки или чего-то подобного.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...