我在屏幕上有几个位图,它们逐渐需要根据设置的值改变颜色。我研究了 LightingColorFilter、PorterDuffColorFilter 和 ColorMatrix,但问题是颜色不断变化(每秒数十次和许多对象)。上述 2 的问题是它们会产生内存泄漏和性能问题。
任何人都可以提出一种逐渐改变位图颜色的方法(无需创建新位图或临时存储画布? - 性能也会受到影响)。我环顾四周,如果没有 OpenGL,这似乎是不可能的(我对此一无所知)。
我的猜测是,如果您愿意将自己限制在 Android 3.0 (Honeycomb) 及更高版本,那么您所需要的速度只能通过 OpenGL 或 Renderscript 实现。
要查看的一个项目是 GPUImage 的 Android 端口
https://github.com/cyberagent-jp/android-gpuimage
看看你是否可以重用预建的过滤器。
您可以使用颜色索引来使用颜色数量有限(例如 256 种)的图像,然后修改索引的颜色。这已经足够快了。
这是调色板动画。此示例将 Thread.sleeps 用于动画本身,但您可以将其替换为正确的动画和进度逻辑。