我已经实现了一个自定义视图,在我的视图中我显示另一组视图(轮播),而拖动我将不同的效果应用于像scale,alpha等的子视图...为了实现这一点,我获得了视图的绘制缓存和需要转换到位图矩阵。
我发现getDrawingCache()方法足够慢,我正在寻找的是另一种方法。
如何在不触及绘图缓存的情况下转换某些视图?
答案 0 :(得分:3)
getDrawingCache()和View.draw()一样快。如果需要,它会创建一个Bitmap,并调用View.draw()来渲染到这个位图。 getDrawingCache()没有什么本质上的缓慢(除了Bitmap本身的分配)所以我建议你分析你的代码,以了解为什么渲染你的观点需要这么长时间。
也可能是你在每个帧上的Views上调用invalidate(),导致getDrawingCache()每次重绘View。