我正在尝试显示存储在我的应用的特定文件夹中的缩略图。这些是在应用程序运行时下载的。我正在使用gallery小部件来显示我在调用ImageAdapter的getView()时从SDcard读取的缩略图,但是当我在小部件上滑动(滚动)时。首先滚动不顺畅,几乎就像我颤抖滚动和滚动非常不稳定。有没有一种有效的方法来做到这一点。我尝试将缩略图存储在内存中,滚动顺畅,但我知道如果我有更多缩略图,我会遇到内存问题..
非常感谢任何帮助。
此致
答案 0 :(得分:0)
您需要使用类似HashMap的内容将图像缓存到内存中,当您的应用程序内存不足时,您将调用Activity.onLowMemory()。实现此方法并清除当前未向用户显示的所有图像。
此外,您可以使用Activity.onTrimMemory()代替onLowMemory。
答案 1 :(得分:0)
在这种情况下,您可以使用GridView和Custom ImageAdapter。 对于缩略图,您可以直接使用MediaStore图像缩略图。并且没有与记忆相关的问题。
final String[] columns = { MediaStore.Images.Media.DATA, MediaStore.Images.Media._ID };
final String orderBy = MediaStore.Images.Media._ID;
Cursor imagecursor = managedQuery( MediaStore.Images.Media.EXTERNAL_CONTENT_URI, columns, MediaStore.Images.Media.DATA + " like ?", new String[] {file.getAbsoluteFile().toString()}, orderBy);
int image_column_index = imagecursor.getColumnIndex(MediaStore.Images.Media._ID);
imagecursor.moveToPosition(0);
int id = imagecursor.getInt(image_column_index);
thumbnails = MediaStore.Images.Thumbnails.getThumbnail( getApplicationContext().getContentResolver(), id,MediaStore.Images.Thumbnails.MICRO_KIND, null);
iv.setImageBitmap(thumbnails);