Изменение положения макета с анимацией в Android

В моем приложении я сделал чат

Я могу изменить положение этого чата, используя

windowManager.updateViewLayout(chatHead, params);

Но это не меняет положение с анимацией.

Как я могу получить анимацию на ходу

Я попытался следовать, но это не работает.

TranslateAnimation anim = new TranslateAnimation( 0, params.x, 0, params.y);
anim.setDuration(1000);
chatHead.startAnimation(anim);

2 ответа

Вы проверили правильность значения params.x и params.y или нет?

TranslateAnimation anim = new new TranslateAnimation( 0, params.x, 0, params.y);
            anim.setDuration(1000);
            anim.setAnimationListener(new TranslateAnimation.AnimationListener() {

                @Override
                public void onAnimationStart(Animation animation) { }

                @Override
                public void onAnimationRepeat(Animation animation) { }

                @Override
                public void onAnimationEnd(Animation animation) 
                {
                    RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams)chatHead.getLayoutParams();

                    **//set margin according to your calculation**

                    params.topMargin = mTopMargin;
                    params.leftMargin = 0;
                    chatHead.setLayoutParams(params);

            });

            chatHead.startAnimation(anim);
        }

или же

использовать anim.setFillAfter(true);

Другие вопросы по тегам