Вопрос по android – Проблемы с OnClickListener после перемещения ImageButton после TranslateAnimation

1

what should I do to move the imageButton to a new palce and keep the OnClick event?

У меня есть два вопроса по этому вопросу:

If I use fillAfter(true), the onclick will not taken to the new place. If use setAnimationListener(onAnimationEnd), and call layout() to move the ImageButton to a new place, the ImageButton will back to new beginning place, why?

коды здесь:

<code>    tsla = new TranslateAnimation(0.0f,(float) (imgWidth * 0.45)-wh/2,0.0f,(float) (imgHeight * 0.566666667)-wh/2);
    tsla.setDuration(sleepX);

    tsla.setAnimationListener(new AnimationListener(){
        public void onAnimationStart(Animation arg0) {
        }
        public void onAnimationEnd(Animation arg0) {
             imgBtnChengdu.layout(
                (int) (imgWidth * 0.45),
                (int) (imgHeight * 0.566666667),
                (int) (imgWidth - wh - imgWidth * 0.45),
                (int) (imgHeight - wh - imgHeight * 0.566666667)
                );
        }
        public void onAnimationRepeat(Animation arg0) {
        }
    });

    imgBtnChengdu.setAnimation(tsla);      
</code>
Спасибо, Януш ... SICON

Ваш Ответ

1   ответ
2

что Android будет только анимировать изображение кнопки на новом месте.

Это означает, что область onClick остается на старом месте. Вам также необходимо изменить положение кнопки в конце анимации, чтобы переместить всю кнопку на новое место, а не только ее вид.

Error: User Rate Limit ExceededimgBtnChengdu.layoutError: User Rate Limit Exceeded SICON
Error: User Rate Limit Exceeded SICON
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceededpublic void onAnimationEnd(Animation animation) { int[] pos={view.getLeft(),view.getTop(),view.getRight(),view.getBottom()}; }
Error: User Rate Limit Exceeded SICON

Похожие вопросы