2012-06-11 23 views
1

我有一個程序從圖庫中檢索圖像。這裏是我的代碼:從Android內存中讀取圖像ICS不工作

String[] id = {MediaStore.Images.Thumbnails._ID}; 
Cursor imageCursor = managedQuery(MediaStore.Images.Thumbnails.EXTERNAL_CONTENT_URI, id, null, null, MediaStore.Images.Thumbnails.IMAGE_ID); 
int image_col_index = imageCursor.getColumnIndexOrThrow(MediaStore.Images.Thumbnails._ID); 
int count = imageCursor.getCount(); 
//in a loop the below code goes { 
    ImageView i = new ImageView(mContext.getApplicationContext()); 
    imageCursor.moveToPosition(position); 
    int id = imageCursor.getInt(image_col_index); 
    i.setImageURI(Uri.withAppendedPath(MediaStore.Images.Thumbnails.EXTERNAL_CONTENT_URI, ""+ id)); 
    i.setScaleType(ImageView.ScaleType.CENTER_CROP); 
    i.setLayoutParams(new GridView.LayoutParams(70, 70)); 
    //here I am storing this image i to a list for further use 
}//here loop ends 

上面的代碼工作正常模擬器以及在的Galaxy SAndroid 2.2或2.3。但現在當我在Galaxy Nexus中運行它時,它無法從內存中讀取圖像。

唯一的區別是Galaxy Nexus是在的Android 4.0運行,並且不支持SD卡代替它具有13 GB的內部存儲。

所以我的問題是我應該改變上面的代碼,以便它可以在Nexus上運行。

我在想,由於Nexus不支持外部存儲,因此可以通過將URL從MediaStore.Images.Thumbnails.EXTERNAL_CONTENT_URI更改爲MediaStore.Images.Thumbnails.INTERNAL_CONTENT_URI來解決。這對我或我是否需要做其他工作?請指導我。

+1

爲什麼告訴我們的循環是簡單地寫'代替while'或'爲'?我們都是程序員。 –

+0

順便說一句,你的問題內容看起來更清潔,當你只有**粗體**每個關鍵字第一次使用它,並在此之後沒有。否則一切看起來大膽,它失去了重點:) –

+0

@AlexLockwood感謝指導我在這種格式化方法。現在請給我一個解決方案。 –

回答

1

唯一的區別是Galaxy Nexus在Android 4.0中運行,並且是 不支持SDCard,而是它具有13 GB的內部存儲空間。

而你正試圖從外部存儲:)

更改閱讀

i.setImageURI(Uri.withAppendedPath(MediaStore.Images.Thumbnails.EXTERNAL_CONTENT_URI, ""+ id)); 

i.setImageURI(Uri.withAppendedPath(MediaStore.Images.Thumbnails.INTERNAL_CONTENT_URI, ""+ id)); 
相關問題