1

我想知道是否有办法使用 ObjectAnimator 跟踪动画。基本上,当您创建活动时,我会移动一个按钮,如果我在动画中单击该按钮,我想以较低的速度到达同一点,而动画又不会从 0 开始。这是代码:

public class MainActivity extends Activity {



@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

final Button prova1 = (Button)findViewById(R.id.prova); 

ObjectAnimator mover = ObjectAnimator.ofFloat(prova1, "translationY", 0, 1000);
mover.setDuration(2000);
mover.start();




prova1.setOnClickListener(new Button.OnClickListener(){
 @Override
public void onClick(View v) {
// TODO Auto-generated method stub
ObjectAnimator mover = ObjectAnimator.ofFloat(prova1, "translationY", "??", 1000);
mover.setDuration(4000);
mover.start();

}});


        }
    }
4

1 回答 1

0

然后您可以尝试使用 xml 中的动画和 onClick 方法中的门 ObjectAnimator 更改第二个动画。例子:

public class MainActivity extends Activity {



@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

final Button prova1 = (Button)findViewById(R.id.prova); 
final Animation trans = AnimationUtils.loadAnimation(this, R.anim.trans);
ObjectAnimator mover = ObjectAnimator.ofFloat(prova1, "translationY", 0, 1000);
mover.setDuration(2000);
mover.start();




prova1.setOnClickListener(new Button.OnClickListener(){
 @Override
public void onClick(View v) {
// TODO Auto-generated method stub
 mover.cancel();
 prova1.startAnimation(trans);

}});


        }
    }

在您的 res->anim->trans 中创建 xml 代码:

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
   android:interpolator="@android:anim/linear_interpolator">
   <translate
       android:fromYDelta="0"
       android:toYDelta="2000"
       android:duration="20000"
       />
</set>
于 2014-02-24T18:36:33.983 回答