我显示了存储上的图像文件缩略图(自定义图库的种类),我使用以下代码根据文件路径检索缩略图:
Cursor cursor = mContentResolver.query(
MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
new String[] { MediaStore.MediaColumns._ID },
MediaStore.MediaColumns.DATA + " LIKE ? ",
new String[] { "%" + str[0] } , null); //str[0] holds the path to the file without the first slash
if ( cursor.moveToFirst()) {
//here we get the ID of the image
int id = cursor.getInt(cursor.getColumnIndex(MediaStore.MediaColumns._ID));
//bitmap variable holds the thumbnail for the image file we need
bitmap = MediaStore.Images.Thumbnails.getThumbnail(
getContentResolver(), id,
MediaStore.Images.Thumbnails.MICRO_KIND,
(BitmapFactory.Options) null );
}
代码在大多数情况下运行良好,在Galaxy S股票Android 2.3.3,中兴通讯定制2.3.5,Nexus 7仿真器和Android 4.4.2上测试,但代码无法在Galaxy S2上运行使用自定义ROM(SlimKat 4.4.2 Custom Rom)。我试图调试它并发现游标总是0行(通常它会返回1行)。有谁知道为什么会发生这种情况?
答案 0 :(得分:0)
一段时间后回到这个问题。所以解决方案实际上不是使用绝对/相对路径,而是使用图像文件的名称。显然不是在所有版本中它的工作方式相同(并且可能取决于设备),因此这似乎是一个可行的解决方案。