系统生成的缩略图检索在自定义Android KitKat 4.4.2中无法正常工作

时间:2014-03-16 10:55:06

标签: android cursor android-4.4-kitkat mediastore

我显示了存储上的图像文件缩略图(自定义图库的种类),我使用以下代码根据文件路径检索缩略图:

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行)。有谁知道为什么会发生这种情况?

1 个答案:

答案 0 :(得分:0)

一段时间后回到这个问题。所以解决方案实际上不是使用绝对/相对路径,而是使用图像文件的名称。显然不是在所有版本中它的工作方式相同(并且可能取决于设备),因此这似乎是一个可行的解决方案。