scrollingCache?

Raj*_*jat 18 android

任何人都可以解释scrolling cacheAndroid中的含义.我偶然发现了这个词,但无法在Android官方网站或网络上找到解释.

我能找到的就是如何打开/关闭它.

谢谢.

num*_*ati 27

滚动缓存基本上是绘图缓存.

在android中,您可以要求View将其绘图存储在名为绘图缓存的缓存中(基本上是位图).默认情况下,禁用绘图缓存,因为它会占用内存,但您可以要求View明确地通过setDrawingCacheEnabled或通过硬件层(setLayerType)创建一个.

那为什么它有用呢?因为与每帧重绘视图相比,使用绘图缓存可使动画更流畅.

这种类型的动画也可以是硬件加速的,因为渲染系统可以采用这个位图并将其作为纹理(如果使用硬件层)上传到GPU并对其进行快速矩阵操作(如更改alpha,平移,旋转).与动画相比,你在每一帧上重绘(onDraw被调用).

对于列表视图,当您通过投掷滚动时,您实际上是动画列表的视图(向上或向下移动).列表视图使用其可见子项的绘图缓存(以及边缘附近的一些可能可见的子项)来非常快速地为它们设置动画.

使用绘图缓存有缺点吗?是的,它消耗内存,这就是默认情况下它在视图中关闭的原因.对于ListView,只要您触摸ListView并稍微移动(以区分点按滚动),就会自动为您创建缓存.换句话说,只要ListView认为您要滚动/拖动它,它就会创建一个滚动缓存,供您设置滚动/拖动动画的动画.

  • ListView默认启用ScrollingCache. (6认同)