Android - 绘图缓存 - 何时有用?

时间:2010-06-23 15:22:59

标签: android caching

我正在阅读有关setDrawingCacheEnabledgetDrawingCache的内容,我想知道何时使用它或什么时候它不好。

基本上在我的情况下,我有一个HorizontalScrollView,里面有很多东西,所以它的左/右滚动,大多数东西都不可见。

如果我在视图上使用setDrawingCacheEnabled(true),它会有帮助吗?或者只有在我使用自定义视图时才会调用getDrawingCache()

HorizontalScrollView中是否还有其他'缓存'方法?

2 个答案:

答案 0 :(得分:5)

TouchInterceptor.java - 此类负责在默认音乐播放器中重新排序您的播放列表。当您开始拖动当前视图时,它会使用setDrawingCacheEnabled。基本上,它从ListView项创建一个位图并拖动它。仔细查看onInterceptTouchEvent方法。

答案 1 :(得分:4)

对于屏幕截图来说,这绝对是有用的,正如马塞尔所说。它在性能方面也非常有用,因为它就是为它创建的。它会耗尽更多内存,因为您首先将视图渲染为位图。

您所做的就是setDrawingCacheEnabledtrue,调用getDrawingCache,它会返回一个位图并存储此位图。在onDraw中,您可以绘制缓存打开时获得的位图,否则绘制视图。滚动时这可能非常好。