android - 如何通过采样缩略图从DCIM / CAMERA中提取图像

时间:2011-06-13 21:15:28

标签: android image camera thumbnails

您好我正在尝试加载存储在卡上的图像,并认为最好加载位图,但我希望同时拥有完整路径和缩略图路径。我怎么做?我希望我的适配器向我显示缩略图列表,但是当我点击时我需要重定向到预览,所以我还需要一个完整的路径。因此,如果我的对象是Image,我需要同时加载imagePath和imageThumbPath。

以下是我现在加载它们的方法:

新图像(数据),其中数据是实际图像的路径。如何将拇指路径同时加载到同一个对象中?

public static List<Image> getCameraImages(Context context) {
                        final String[] projection = { MediaStore.Images.Media.DATA };
                        final String selection = MediaStore.Images.Media.BUCKET_ID + " = ?";
                        final String[] selectionArgs = { CAMERA_IMAGE_BUCKET_ID };
                        final Cursor cursor = context.getContentResolver().query(Images.Media.EXTERNAL_CONTENT_URI, 
                                projection, 
                                selection, 
                                selectionArgs, 
                                null);
                        List<Image> result = new ArrayList<Image>(cursor.getCount());
                        if (cursor.moveToFirst()) {
                            final int dataColumn = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
                            do {
                                final String data = cursor.getString(dataColumn);
                                result.add(new Image(data));
                            } while (cursor.moveToNext());
                        }
                        cursor.close();
                        return result;
                    }

    public static final String CAMERA_IMAGE_BUCKET_NAME =
                    Environment.getExternalStorageDirectory().toString()
                    + "/DCIM/Camera";
                public static final String CAMERA_IMAGE_BUCKET_ID = getBucketId(CAMERA_IMAGE_BUCKET_NAME);

    public static String getBucketId(String path) {
                    return String.valueOf(path.toLowerCase().hashCode());
                }

1 个答案:

答案 0 :(得分:0)

我发现如何做帽子只是为了发现拇指和原件一样大小!可怕!