7

Androidのギャラリーから写真を取得する方法を知っています

Intent gallery = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
startActivityForResult(gallery, PHOTO_REQUEST_CODE);

しかし、サムネイルを具体的に選択するにはどうすればよいでしょうか。

報奨金の理由:

私は既にsd card + android に保存されている画像のサムネイル Uri/path の取得で両方のソリューションを試しました。彼らは私にはうまくいきません。からselectedImageUriタイプ のを取得する方法がわかりませんlongdata

 onActivityResult(int requestCode, int resultCode, Intent data)
4

3 に答える 3

0
String fn = ...; // file name
ContentResolver cr = ctx.getContentResolver();
Cursor c = cr.query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
           new String[]{
              BaseColumns._ID
           }, MediaColumns.DATA + "=?", new String[]{ fn }, null);
     if(c!=null) {
        try{
           if(c.moveToNext()) {
              long id = c.getLong(0);
              Bitmap thumbnail = MediaStore.Images.Thumbnails.getThumbnail(cr, id, MediaStore.Images.Thumbnails.MINI_KIND, null);
           }
        }finally{
           c.close();
        }
     }
于 2013-06-11T09:40:24.367 に答える
0

カーソルを手に持っている場合、その ID を として取得できます。

int id = cursor.getInt(cursor
                    .getColumnIndex(MediaStore.MediaColumns._ID));

次のコードを参照してください

Cursor cursor = context.getContentResolver().query(
                MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
                new String[] { MediaStore.Images.Media._ID },
                MediaStore.Images.Media.DATA + "=? ",
                new String[] { filePath }, null);

        if (cursor != null && cursor.moveToFirst()) {
            int id = cursor.getInt(cursor
                    .getColumnIndex(MediaStore.MediaColumns._ID));
            Uri baseUri = Uri.parse("content://media/external/images/media");
            return Uri.withAppendedPath(baseUri, "" + id);

したがって、サムネイルについては、

Bitmap thumbnail = MediaStore.Images.Thumbnails.getThumbnail(cursor, id, MediaStore.Images.Thumbnails.MINI_KIND, null);
于 2013-06-16T06:26:53.870 に答える