感谢Schermvlieger在anddev.org,
上问this问题[我只是将他的问题复制到SO,因为没有人在另一个站点上回答,而且我也面临相同的问题。
我想知道关于显示图像的速度,BitmapFactory.Options.inSampleSize
的最佳用法是什么。文档中提到使用的是2的幂,所以我正在使用2、4、8、16等。
我想知道的是:
OutOfMemoryError
的尺寸?BitmapFactory
,小文件为setImageURI()
。我顺便使用了ImageSwitcher
。Bitmap
,BitmapFactory.Options
和inTempStorage
或仅在需要时动态创建它们?您应始终尝试加载和预缩放图像,以使其尽可能接近最终显示的尺寸。在绘制时缩放图像非常昂贵,应该不惜一切代价避免。
考虑到图像的存储成本,是的,彩色部起着非常重要的作用。 ALPHA_8格式的图像每像素使用1个字节,RGB_565或ARGB_4444的图像每个像素使用2个字节,而ARGB_8888的图像每个像素使用4个字节。显示屏的深度根本不重要。您应该始终尝试使用ARGB_8888以获得最佳质量,但是如果您的图像不透明,则565足够好。]
您已经问了好问题,但这完全取决于您的需求以及使用的内存量。我建议您查看此链接以获得有关位图的许多提示:http://developer.android.com/training/displaying-bitmaps/index.html。
这里您可以调用用户定义的方法shrinkmehtod
,该方法实际上将字符串文件路径以及要缩小图像的高度和宽度发送到方法。
您好,尝试使用此逻辑计算inSampleSize