在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

上述代码在Emulator以及Android 2.2或2.3版本的 Galaxy S中都能正常工作。 但是现在,当我在Galaxy Nexus中运行它时,它无法从内存中读取图像。

唯一的区别是Galaxy Nexus在Android 4.0中运行,不支持SDCard,而是具有13 GB的内部存储。

所以我的问题是我应该改变上面的代码,以便它可以在Nexus上运行。

我想,作为的Nexus不支持外部存储,因此它可以通过改变从URI来解决MediaStore.Images.Thumbnails.EXTERNAL_CONTENT_URIMediaStore.Images.Thumbnails.INTERNAL_CONTENT_URI 。 这对我或我是否需要做别的工作? 请指导我。


唯一的区别是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));
链接地址: http://www.djcxy.com/p/67501.html

上一篇: Reading images from memory in Android ICS not working

下一篇: Yea or Nay?