我已经问了一个关于同一主题的问题(here),但我还有另一个问题,所以我认为一个新问题会更好(如果我错了,请纠正我)。< / p>
我注意到Android Bitmap使用每像素编码。这是相当低效的。然后我偶然发现了BitmapFactory.Options类,它允许您选择较小的每像素(RGB_565)格式:
public BitmapFactory.Options options = new BitmapFactory.Options();
options.inPreferredConfig = Bitmap.Config.RGB_565;
然后在加载Bitmap时使用此选项以减少内存负载。但是你仍然有一个每像素编码。现在我的问题是,有没有办法使用非像素编码在画布上显示位图?或者是否可以在不花费更多内存的情况下升级较小的位图(即,你有一个10x10的图像,并希望将其升级到100x100,而不需要在内存中只有100000像素而只需要100个)?
希望我的问题很明确。我可以发布一些代码,但我没有看到这个特定问题的附加价值。
答案 0 :(得分:0)
这非常令人沮丧,我已经好几天都在考虑这个问题了,一遍又一遍地阅读Bitmap文档并最终拼命地发布了stackoverflow的问题,在发布后几分钟我发现了这个解决方案。
问题在于,这不是Bitmap类中的选项,而是Canvas类中的选项。 Canvas类为此描述的here提供了几个函数:
drawBitmap(位图位图,矩阵矩阵,油漆颜料)
drawBitmap(位图位图,Rect src,RectF dst,Paint paint)
drawBitmap(位图位图,Rect src,Rect dst,Paint paint)
很抱歉打扰,但我很高兴我得到了解决方案。我希望其他人可能会觉得这很有用。