我尝试使用ImageView
课程为ValueAnimator
设置动画。但是,ValueAnimator
类的official documentation不包含足够的详细信息(至少对于初学者而言)。我希望ImageView
在点击Button
时向右移动(翻译动画)。我使用以下代码但没有使用。
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.widget.Button;
import android.widget.ImageView;
import android.animation.ValueAnimator;
public class TestActivity extends ActionBarActivity {
private ImageView image;
private Button animateButton;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_test);
image = (ImageView) findViewById(R.id.imageView);
animateButton = (Button) findViewById(R.id.button);
final ValueAnimator animator = ValueAnimator.ofInt(0, 100);
animator.setTarget(android);
animateButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
animator.start();
}
});
}
}
当我点击" Animate"按钮,没有动画发生,图像保持原样。我只是无法弄清楚如何让这件事发挥作用。有关此问题的任何帮助将受到高度赞赏。
提前致谢。
答案 0 :(得分:1)
但是,ValueAnimator类的官方文档中没有包含足够的详细信息(至少对于初学者而言)。
您可能遗漏的key bit是:
然而,[使用普通的ValueAnimator]对对象没有实际影响,因为ValueAnimator不直接对对象或属性进行操作。
将您的ValueAnimator
更改为属性动画:
ObjectAnimator animator = ObjectAnimator.ofFloat(image, "x", 0f, 100f);
并删除setTarget()
行。
或者,使用更简单的语法:
image.animate().x(100f);