java - android中如何从图像路径获取缩略图路径?

标签 java android

基本上我的图像路径如下所示:/mnt/sdcard/Pictures/image.jpg 我需要以尽可能最快的方式从中获取缩略图的路径。

我正在尝试使用 MediaStore.Images.Thumbnails.queryMiniThumbnail,但无论我通过什么,我都会得到空光标。 谢谢!

编辑: 该函数带来所有图像路径和缩略图路径并将它们存储在字符串中。我需要的是一个返回特定图像路径(/mnt/sdcard/Pictures/image.jpg)的缩略图路径的函数。谢谢

public String getThumbPaths(ThumbContext ctx) {
    Uri uri = MediaStore.Images.Thumbnails.getContentUri("external");

    Cursor cursor = MediaStore.Images.Thumbnails.queryMiniThumbnails(ctx
            .getActivity().getContentResolver(), uri,
            MediaStore.Images.Thumbnails.MINI_KIND, null);

    int columnIndex = cursor.getColumnIndex(Thumbnails.IMAGE_ID);

    String[] filePathColumn = { MediaStore.Images.Media.DATA };

    StringBuilder stringBuilder = new StringBuilder();

    String id = MediaStore.Images.Media._ID + "=?";

    String orientation="1";

    for (cursor.moveToFirst(); !cursor.isAfterLast(); cursor.moveToNext()) {

        String imageId = cursor.getString(columnIndex);

        Cursor images = ctx.getActivity().managedQuery(
                MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
                filePathColumn, id,
                new String[] { imageId }, null);

        String filePath = "";
        if (images != null && images.moveToFirst()) {
            filePath = images.getString(images
                    .getColumnIndex(filePathColumn[0]));
        }

        ExifInterface exifReader;
        try {
            exifReader = new ExifInterface(filePath);
            orientation=exifReader.getAttribute(ExifInterface.TAG_ORIENTATION);
        } catch (IOException e) {
            // TODO Auto-generated catch block
            //e.printStackTrace();
        }


        stringBuilder.append(cursor.getString(1) + ";");
        stringBuilder.append(filePath + ";");
        stringBuilder.append(orientation + ";");
        orientation="1";

    }
    //cursor.close();
    return stringBuilder.toString();
}

最佳答案

如果我理解正确的话,您的图像不在媒体数据库中。您可以使用

ThumbnailUtils.extractTumbnail()

只需要一个位图。

关于java - android中如何从图像路径获取缩略图路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13583137/

相关文章:

java - 如何知道线程是否被唤醒或时间片(Producer-Consumer)

java - DialogFragment 中的 EditText 始终返回空字符串

java - Deltaspike 和 quartz : How to set cronExpressions from a config file

java - 如何正确关闭 log4j2

java - 基于键排序 TreeMap ,其中键是可变的

android [java.lang.NoClassDefFoundError : android. widget.Toolbar]

android - 在每次触摸事件时旋转图像

java - 使用动态创建的 fragment 将选项卡添加到嵌套的 FragmentTabHost

android - 自定义通知

android - ImeAction Search 在点击后更改为 Done