Android中基于1位的位图

Android中基于1位的位图,android,graphics,bitmap,out-of-memory,android-canvas,Android,Graphics,Bitmap,Out Of Memory,Android Canvas,我正在尝试缓存大位图,以便在Android中在屏幕上绘制。但是现在我面临着OutOfMemoryException,比如说位图分配超过了VM预算 我需要最小化位图的大小,但我不能降低分辨率。对于我的用例,我只需要保存位图的形状,并在以后实际绘制时应用颜色,因此我使用ALPHA_8作为位图配置 我想知道位图中是否有1位像素(完全不透明或完全透明)配置,或者是否有任何类似的方法来节省内存?将颜色深度从8位减少到1位当然会有所帮助。然而,这并不能真正解决问题,只是推迟了问题的解决。这只意味着你以后会得

我正在尝试缓存大位图,以便在Android中在屏幕上绘制。但是现在我面临着OutOfMemoryException,比如说位图分配超过了VM预算

我需要最小化位图的大小,但我不能降低分辨率。对于我的用例,我只需要保存位图的形状,并在以后实际绘制时应用颜色,因此我使用ALPHA_8作为位图配置


我想知道位图中是否有1位像素(完全不透明或完全透明)配置,或者是否有任何类似的方法来节省内存?

将颜色深度从8位减少到1位当然会有所帮助。然而,这并不能真正解决问题,只是推迟了问题的解决。这只意味着你以后会得到OOME,但你仍然会得到它


考虑将缓存从RAM移动到磁盘,并可以选择在上面添加一个较小的基于RAM的缓存,以提高性能

将颜色深度从8位减少到1位当然会有所帮助。然而,这并不能真正解决问题,只是推迟了问题的解决。这只意味着你以后会得到OOME,但你仍然会得到它


考虑将缓存从RAM移动到磁盘,并可以选择在上面添加一个较小的基于RAM的缓存,以提高性能

大多数情况下,你的方式是解决OOME的最佳方式。但事实上,我的位图是从大量形状绘制的画布缓存。我存储了一个缓存以提高对我的应用程序的响应能力,因此我宁愿再次绘制它们,而不是存储到硬盘。我只是想知道1位是否可能,因为这将允许我在相同的内存空间中存储更多的缓存。大多数情况下,您的方法是解决OOME的最佳方法。但事实上,我的位图是从大量形状绘制的画布缓存。我存储了一个缓存以提高对我的应用程序的响应能力,因此我宁愿再次绘制它们,而不是存储到硬盘。我只是想知道1位是否可行,因为这样可以在相同的内存空间中存储更多的缓存。