翻译动画在动态视图中无法正常工作

时间:2014-08-08 10:03:04

标签: android animation dynamic textview translate-animation

在这个项目中,我想在单击按钮时将TextView的克隆从顶部TextView位置移动到底部TextView位置。

我在使用翻译动画时遇到了问题。我想将视图移动到准确的位置(就像在Zapya中一样)。

在Zapya中,当用户选择项目并选择“发送”时, gridview项目的克隆将移至用户图标。 所以,我使用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 个答案:

答案 0 :(得分:0)

增加持续时间,可能是一个问题

anim.setDuration(4000);