我在ViewFlipper中有两个视图,它们之间有一个快速/复杂的动画。第二个视图包含一个列表,所以当视图在动画中途变为可见时,getView()会被多次调用并导致非常明显的断断续续(通常会停止整个动画的后半部分)
理想情况下,我想在开始动画之前预渲染(测量,布局,绘制)第二个视图,但我还没有找到一种简单的方法来执行此操作。
我还探讨了使用绘图缓存,屏幕外画布等 - 但我找不到一种简单的方法来实现这一点。似乎是两个视图之间的任何动画都有问题。有什么帮助吗?
答案 0 :(得分:0)
您可以通过在开始动画之前指定图层类型并调用buildLayer()来强制渲染视图。
newView.setLayerType(View.LAYER_TYPE_HARDWARE, null);
newView.buildLayer();
您也可以使用LAYER_TYPE_SOFTWARE。默认值为LAYER_TYPE_NONE,这会阻止buildLayer()执行任何操作。