Перевести Анимация не работает идеально в динамическом представлении
В этом проекте я хочу переместить клон 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);