gpt4 book ai didi

android - 滚动缓存?

转载 作者:IT王子 更新时间:2023-10-28 23:36:53 32 4
gpt4 key购买 nike

谁能解释一下Android中scrolling cache的含义。我偶然发现了这个词,但在android官网或网络上都找不到解释。

我只能找到如何打开/关闭它。

谢谢。

最佳答案

滚动缓存基本上是一个绘图缓存。

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

那么它为什么有用呢?因为与在每一帧重绘 View 相比,使用绘图缓存可以让您的动画更流畅。

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

在 ListView 的情况下,当您通过滑动滚动时,您实质上是在为 ListView 设置动画(向上或向下移动它们)。 listview 使用其可见子项(以及边缘附近的一些潜在可见子项)的绘图缓存来非常快速地为它们设置动画。

使用绘图缓存有什么缺点吗?是的,它会消耗内存,这就是为什么默认情况下它在 View 中是关闭的。在 ListView 的情况下,只要您触摸 ListView 并稍微移动(以区分轻击和滚动),就会自动为您创建缓存。换句话说,一旦 ListView 认为您将要滚动/翻动,它就会为您创建滚动缓存来为滚动/翻动运动设置动画。

关于android - 滚动缓存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15570041/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com