我有一个我写的上传图片到我的服务器的应用程序,它在运行android 2.3.4的droidx和运行android 4.0.3的两个不同的模拟器上运行得很好。然而,当我尝试在华硕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个是我从网上下载的。之前的代码只获取图像,而不是缩略图,它告诉我摄像头有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");当我打开画廊应用程序时,这些图像都会显示出来。我也试过清除媒体存储应用程序并重启设备,看看这样做是否有帮助,但没有。在这一点上,我非常困惑,特别是因为这完全相同的代码在手机和模拟器上工作。
发布于 2013-03-12 23:39:49
好了,找到了。
当你有了图像id,你就会得到它的缩略图,使用:
MediaStore.Images.Thumbnails.getThumbnail(getContentResolver(), imageID, MediaStore.Images.Thumbnails.MINI_KIND, null);这将在没有加载完整图像的情况下返回位图。
发布于 2013-02-19 03:25:55
我创建了一个工具类,如果你向它传递你想要获取的图像/视频的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);
}
}https://stackoverflow.com/questions/10092549
复制相似问题