我尝试扩展布局动画和translation
ImageView
动画,但我一起开始它们看起来有些迟钝。我在真实设备Moto X(2013)上进行了测试。不确定更强大的设备,因为我的所有模拟手机默认都是滞后的:)。
我还尝试启用HardwareType
View.setLayerType(View.LAYER_TYPE_HARDWARE, null);
但这也没有给出结果。
所以这里的翻译代码:
ObjectAnimator translate = ObjectAnimator.ofFloat(view, "translationX", 0f, 380.0f);
translate.setDuration(500);
translate.setInterpolator(new LinearInterpolator());
translate.start();
布局扩展:
va = ValueAnimator.ofInt(340, 904);
va.setDuration(500);
va.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
public void onAnimationUpdate(ValueAnimator animation) {
Integer value = (Integer) animation.getAnimatedValue();
user_container.getLayoutParams().height = value.intValue();
user_container.requestLayout();
System.out.println("value = " + value.intValue() );
}
});
没什么特别的。那么,有人可以告诉我,如何及时制作动画并不迟迟?
答案 0 :(得分:1)
首先,你应该衡量占用这么多时间的东西。通常,如果您有自定义视图,则它是您的绘制方法。如果没有,你通常在主线程上做其他事情,这需要花费太多时间 - 即移动或更新正在访问I / O或类似的侦听器。
尝试为初学者踢出日志行。并尽量不要只是为了看看会发生什么以及它是否会产生任何影响而致电requestLayout()
。如果你的user_container
非常复杂,那么肯定会遇到滞后。
顺便说一下,如果你测试的设备因设备而异,请不要使用仿真器。)