[英]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.