在动画期间显示之前绘制视图

时间:2012-12-26 20:33:16

标签: android android-animation

我在ViewFlipper中有两个视图,它们之间有一个快速/复杂的动画。第二个视图包含一个列表,所以当视图在动画中途变为可见时,getView()会被多次调用并导致非常明显的断断续续(通常会停止整个动画的后半部分)

理想情况下,我想在开始动画之前预渲染(测量,布局,绘制)第二个视图,但我还没有找到一种简单的方法来执行此操作。

我还探讨了使用绘图缓存,屏幕外画布等 - 但我找不到一种简单的方法来实现这一点。似乎是两个视图之间的任何动画都有问题。有什么帮助吗?

1 个答案:

答案 0 :(得分:0)

您可以通过在开始动画之前指定图层类型并调用buildLayer()来强制渲染视图。

newView.setLayerType(View.LAYER_TYPE_HARDWARE, null);
newView.buildLayer();

您也可以使用LAYER_TYPE_SOFTWARE。默认值为LAYER_TYPE_NONE,这会阻止buildLayer()执行任何操作。

相关问题