我正在阅读有关setDrawingCacheEnabled
和getDrawingCache
的内容,我想知道何时使用它或什么时候它不好。
基本上在我的情况下,我有一个HorizontalScrollView
,里面有很多东西,所以它的左/右滚动,大多数东西都不可见。
如果我在视图上使用setDrawingCacheEnabled(true)
,它会有帮助吗?或者只有在我使用自定义视图时才会调用getDrawingCache()
?
在HorizontalScrollView
中是否还有其他'缓存'方法?
答案 0 :(得分:5)
TouchInterceptor.java - 此类负责在默认音乐播放器中重新排序您的播放列表。当您开始拖动当前视图时,它会使用setDrawingCacheEnabled
。基本上,它从ListView
项创建一个位图并拖动它。仔细查看onInterceptTouchEvent
方法。
答案 1 :(得分:4)
对于屏幕截图来说,这绝对是有用的,正如马塞尔所说。它在性能方面也非常有用,因为它就是为它创建的。它会耗尽更多内存,因为您首先将视图渲染为位图。
您所做的就是setDrawingCacheEnabled
到true
,调用getDrawingCache
,它会返回一个位图并存储此位图。在onDraw
中,您可以绘制缓存打开时获得的位图,否则绘制视图。滚动时这可能非常好。