2011-11-02 41 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

相關問題