Перевести Анимация не работает идеально в динамическом представлении

В этом проекте я хочу переместить клон TextView из верхнего места TextView в нижнее место TextView при нажатии кнопки.

У меня проблема с использованием анимации перевода. Я хочу переместить вид в точное положение (как в Zapya).

В Zapya, когда пользователь выбирает элемент и выбирает "отправить", клон элемента gridview перемещается к значку пользователя. Итак, я использую Translate Animation для перемещения вида. И я создал вид динамически, чтобы показать клон элемента.

Использование Translate Animation работает с представлением, которое изначально создается в XML, но не с представлением, которое создается динамически.

Код здесь

    top = (TextView) findViewById(R.id.textviewtop);
    bottom = (TextView) findViewById(R.id.textviewbottom);
    button = (Button) findViewById(R.id.button);


    button.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            int []from = new int[2];
            int []to = new int[2];

              from[0] = (int) top.getX();
            from[1] = (int) top.getY();
             to[0] = (int) bottom.getX();
            to[1] = (int) bottom.getY();
            ViewGroup vg = (ViewGroup) top.getParent();

            view = new TextView(getApplicationContext());
            view.setWidth(top.getWidth());
            view.setHeight(top.getHeight());
            view.setX(from[0]);
            view.setY(from[1]);
            view.setText(top.getText());
            view.setVisibility(View.VISIBLE);
            view.setTextColor(Color.BLACK);
            view.setId(0x23454657);
            vg.addView(view);


            TranslateAnimation anim = new TranslateAnimation( 0, 0 , from[1], to[1] );
            anim.setDuration(1000);
            anim.setFillAfter( true );
            view.startAnimation(anim);



        }
    });

и XML-файл

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/rl"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity" >

    <TextView
        android:id="@+id/textviewtop"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_alignParentTop="true"
        android:text="@string/hello_world" />


    <Button 
        android:id="@+id/button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:text="Move"/>

    <TextView
        android:id="@+id/textviewbottom"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_alignParentBottom="true"
        android:text="@string/hello_world" />
</RelativeLayout>

"просмотр" показывает только время начала и окончания. Но не между Как я могу решить это. Пожалуйста, скажите, есть ли другой способ. Я буду благодарен за тонну.

1 ответ

Увеличьте продолжительность времени, может быть, это проблема

anim.setDuration(4000);
Другие вопросы по тегам