我注意到android管理缩略图的不同行为。 这是我的代码:
String[] sProjection = new String[]{MediaStore.Images.Media.BUCKET_DISPLAY_NAME,
MediaStore.Images.Media.DISPLAY_NAME,MediaStore.Images.Media.DATA,
MediaStore.Images.Media._ID};
Cursor oCur = oActivity.getContentResolver().query(
MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
sProjection,"",null,MediaStore.Images.Media.BUCKET_DISPLAY_NAME);
do{
...
Bitmap oBmp = MediaStore.Images.Thumbnails.getThumbnail(oActivity.getContentResolver(),bmpID,
MediaStore.Images.Thumbnails.MICRO_KIND,null);
...
}while (oCur.moveToNext());
然后在加载所有缩略图之后,我会对其中的一些进行详细说明。
使用我的手机(Android 4.1.2)首次加载所有缩略图后(例如使用新照片或在媒体存储中清理缓存后),“do while”循环非常快,因为已经创建了所有tumbanails并保存在缓存中。
每次执行循环时都有另一个(相同的Android版本),没有速度的改进,因为它不会保存它们但会重新计算它们(使用Eclipse LogCat中的消息查看)。
为什么会这样?!有没有办法解决这个问题,并强制Android保存缩略图在缓存中?
非常感谢您的帮助,非常感谢任何建议。