android - 动画 child 回到原来的位置

标签 android animation android-animation

我正在使用 animate() 方法使用以下代码将我的 TextView 发送到布局的最右下角:

move.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View arg0) {
                // TODO Auto-generated method stub
                int xValue = container.getWidth() - myView.getWidth();
                int yValue = container.getHeight() - myView.getHeight();
                myView.animate().x(xValue).y(yValue);
            }
        });

这确实有效,但我有点迷失在将元素恢复到其原始位置的过程中。我确实尝试了以下方法,但没有用:

public class MainActivity extends Activity {

    Button fadeIn, fadeOut, move, moveBack;
    TextView myView;
    LinearLayout container;
    float originalX , originalY;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        fadeIn = (Button)findViewById(R.id.fadeIn);
        fadeOut = (Button)findViewById(R.id.fadeOut);
        move = (Button)findViewById(R.id.move);
        moveBack = (Button)findViewById(R.id.moveBack);
        myView = (TextView)findViewById(R.id.myView);
        originalX = myView.getX();
        originalY = myView.getY();
        Log.i("X and Y", ""+originalX+" "+originalY);
        container = (LinearLayout) findViewById(R.id.container);
        fadeIn.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View arg0) {
                // TODO Auto-generated method stub
                myView.animate().alpha(1);
            }
        });
        fadeOut.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View arg0) {
                // TODO Auto-generated method stub
                myView.animate().alpha(0);
            }
        });
        move.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View arg0) {
                // TODO Auto-generated method stub
                int xValue = container.getWidth() - myView.getWidth();
                int yValue = container.getHeight() - myView.getHeight();
                myView.animate().x(xValue).y(yValue);
            }
        });
        moveBack.setOnClickListener(new OnClickListener(){

            @Override
            public void onClick(View arg0) {
                // TODO Auto-generated method stub
                myView.animate().x(originalX).y(originalY);;
            }

        });

    }
}

下面给出了 X 和 Y 上的 0,0 位置。请帮忙。

最佳答案

你可以试试 TranslateAnimations .类似的东西。-

TranslateAnimation anim = new TranslateAnimation(originalX, xValue, originalY, yValue);
anim.setFillAfter(true);
anim.setFillEnabled(true);
anim.setDuration(ANIM_DURATION);
myView.startAnimation(anim);

并还原值以恢复原始位置。-

TranslateAnimation anim = new TranslateAnimation(xValue, originalX, yValue, originalY);
anim.setFillAfter(true);
anim.setFillEnabled(true);
anim.setDuration(ANIM_DURATION);
myView.startAnimation(anim);

关于android - 动画 child 回到原来的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19048834/

相关文章:

android - 无黑屏的 Activity 之间的平滑过渡

java - 如何循环播放多个图像的淡入和淡出动画?

java - 在Gradle文件中使用名称有问题的.so库

android - 将抽屉图标设置为 setDisplayHomeAsUpEnabled 上的箭头?

android - 当某些闹钟在 Android 中自然重复时设置多个闹钟的最佳方法

javascript - 检查页面何时加载以及打开动画何时完成

ios - Swift - removeAllAnimations() - 一个接一个的动画

android - 在android中同时运行两个动画

java - 如果存在两条以上记录,则从数据库获取数据

android - 基类中的 Dagger 注入(inject)是一种好方法吗?