我的AsyncTasks类中有这个工作代码。
protected void onProgressUpdate(Object... values) {
View view = (View) values[0];
view_group.addView(view);
view.animate().y(500).setDuration(1000);
}
我尝试将代码更改为:
protected void onProgressUpdate(Object... values) {
View view = (View) values[0];
view_group.addView(view);
ValueAnimator va = ObjectAnimator.ofInt(view, "y", 500);
va.setDuration(1000);
va.start();
}
视图正在显示,但没有动画。
我错过了什么?
修改
我还尝试将ValueAnimator代码放在AnimatorListener
内(当然使用不同的坐标),因此它将在第一个动画完成后运行,但它不起作用。
答案 0 :(得分:5)
我错过了什么?
x
和y
为float
值而不是int
所以请使用:
ValueAnimator va = ObjectAnimator.ofFloat(view, "y", 500);
或者如果您定位ICS
,则可以使用:
ValueAnimator va = ObjectAnimator.ofFloat(view, View.Y, 500);