2011-11-02 58 views
1

我想显示为我的应用程序存储在特定文件夹中的缩略图。这些是在应用程序运行时下载的。当我调用ImageAdapter的getView()时,当我在窗口小部件上滑动(滚动)时,我正在使用图库小部件来显示从SDcard读取的缩略图。首先滚动不平滑,就像我颤抖着滚动和滚动非常不正常。有没有这样做的有效方式。我试图在内存中存储缩略图滚动是顺利的,但我知道我会遇到内存问题,如果我有更多的缩略图..使用来自SDcard的图像的Android图库窗口小部件

任何帮助将不胜感激。

问候

回答

0

需要缓存使用类似HashMap的图像记忆,当你的应用程序运行它们内存溢出Activity.onLowMemory()将被调用。实施此方法并清除所有未显示给用户的图像。您可以使用Activity.onTrimMemory()而不是onLowMemory。

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); 
+0

感谢您的回复。但我想使用画廊小部件,我只想显示与我的应用程序相关的图像。 MediaStore会显示SD卡上的所有图像吗? – Chandu