我的应用程序正在从互联网下载图像文件。为了提高性能,我将位图缓存在内存中(包括硬缓存和软缓存)。我也把图像文件缓存在SD卡中。
从SD卡解码图像文件需要相当长的时间。我测量了这行代码,大约需要500 - 1800 milliseconds
。
Bitmap bitmap = BitmapFactory.decodeFile(pathName, bitmapOptions);
的一些事实
- 平均实际图像大小为600x600
- 请求的位图大小介于200X200到400x400之间
- 已使用
bitmapOptions.inSampleSize
缩放图像
有人能提出提高文件解码性能的更好方法吗?
感谢
您可以以所需的所有格式缓存图像并对其进行解码。
任何需要时间执行的任务都应该放在AsyncTask中。此外,对于图像管理,我可以建议你阅读我以前的帖子和其中的链接:https://stackoverflow.com/questions/8041683/smart-image-scaling-down-and-variables-deep-description