0

私のアプリケーションでは、Gridview の Camera フォルダーからのみ画像を表示したいと考えています。画像をインポートするために次のコードを書きました:-

String[] projection = { MediaStore.Images.Thumbnails._ID, };

        Cursor mImageCursor = getContentResolver().query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, projection, null, null, null ); 

    if (mImageCursor != null)
    {

        mImageCursor.moveToFirst();

        for (int i = 0; i < mImageCursor.getCount(); i++)
        {
            Images im=new Images();
            int imageId = mImageCursor.getInt((mImageCursor.getColumnIndex( MediaStore.Images.Media._ID)));
            Bitmap bm = MediaStore.Images.Thumbnails.getThumbnail(getContentResolver(), 
                    imageId, MediaStore.Images.Thumbnails.MINI_KIND, null);
            im.setBitmap(bm);
            arrayOfImages.add(im);

            mImageCursor.moveToNext();
        }
    }

ただし、このコードはギャラリーからすべての画像をインポートします。しかし、カメラフォルダからのみ画像をインポートしたいです。p

4

1 に答える 1

4

カメラ画像だけが必要な場合は、バケット名でフィルター処理してカメラ画像のリストを取得する方法を次に示します。この場合、サムネイルを読み取って独自のアクティビティに表示し、ユーザーに選択を求めることができます。

 public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        String[] projection = {
                MediaStore.Images.Media._ID, MediaStore.Images.Media.BUCKET_DISPLAY_NAME,
                MediaStore.Images.Media.DISPLAY_NAME
        };
        String selection = MediaStore.Images.Media.BUCKET_DISPLAY_NAME + " = ?";
        String[] selectionArgs = new String[] {
            "Camera"
        };
        Cursor mImageCursor = managedQuery(MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
                projection, selection, selectionArgs, null);

        while (mImageCursor.moveToNext()) {
            Log.d("TestActivity", mImageCursor.getString(1) + "    " + mImageCursor.getString(2));

        }
    }
于 2013-02-06T10:49:13.450 に答える