簡體   English   中英

MediaStore.Images.Thumbnails 似乎是空的

[英]MediaStore.Images.Thumbnails appears to be empty

我有一個我編寫的應用程序,用於將圖像上傳到我的服務器,它在運行 android 2.3.4 的 droidx 和運行 android 4.0.3 的兩個不同模擬器上運行良好。 但是,當我嘗試在 Asus ee Pad Transformer(運行 4.0.3)上運行它時,它總是告訴我 MediaStore.Images.Thumbnails 中有 0 個項目。

String[] projection = {MediaStore.Images.Thumbnails._ID};
cursor = managedQuery( MediaStore.Images.Thumbnails.EXTERNAL_CONTENT_URI,
    projection,
    null,
    null,
    MediaStore.Images.Thumbnails.IMAGE_ID);
Log.d("Info","There are " + cursor.getCount() + " items");

應該有 6 個出現,5 個來自相機,1 個是我從 inte.net 下載的。 早期只獲取圖像而不是縮略圖的代碼告訴我相機有 5 張圖像,所以我知道代碼正在運行。

String[] projection = {MediaStore.Images.Media._ID};
    cursor = managedQuery(MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
    projection,
    "Camera",
    null,null);
Log.d("Info","There are " + cursor.getCount() + " images");

當我打開圖庫應用程序時,這些圖像都會顯示出來。 我也試過清除媒體存儲應用程序並重新啟動設備以查看是否有幫助,但沒有用。 在這一點上,我很困惑,尤其是因為這個完全相同的代碼在手機和模擬器上都能正常工作。

好的,找到了。
當您擁有圖像 ID 時,您可以使用以下方法獲取它的縮略圖:

MediaStore.Images.Thumbnails.getThumbnail(getContentResolver(), imageID, MediaStore.Images.Thumbnails.MINI_KIND, null);

這將在加載完整圖像的情況下返回 Bitmap。

我創建了一個實用程序 class,如果您將要獲取的圖像/視頻的 uri 傳遞給它,它將創建並返回圖像和視頻的縮略圖。

package Utilities;

import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.media.ThumbnailUtils;
import android.provider.MediaStore;

public class AndroidUtils 
{
    public static final int THUMBNAIL_SIZE = 128;
    public static Bitmap GetImagePreview(String uri)
    {
        return ThumbnailUtils.extractThumbnail(BitmapFactory.decodeFile(uri), THUMBNAIL_SIZE, THUMBNAIL_SIZE);
    }

    public static Bitmap GetVideoPreview(String uri)
    {
        return ThumbnailUtils.createVideoThumbnail(uri, MediaStore.Images.Thumbnails.MICRO_KIND);
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM