繁体   English   中英

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

[英]Draw View before displaying during animation

我在ViewFlipper中有两个视图,并且它们之间有快速/复杂的动画。 第二个视图包含一个列表,因此在该视图在动画中途可见时,getView()被调用了很多次,并导致非常明显的卡顿(通常在整个动画后半段停顿)

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

我还探索了使用图形缓存,屏幕外画布等的方法-但我也找不到一种简单的方法来实现此目的。 在两个视图之间进行动画处理的任何人似乎都是一个问题。 有什么帮助吗?

您可以通过指定图层类型并在开始动画之前调用buildLayer()来执行此操作,这将强制渲染视图。

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

您也可以使用LAYER_TYPE_SOFTWARE。 默认值为LAYER_TYPE_NONE,它阻止buildLayer()做任何事情。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM