4

Whatsapp でユーザーが複数の画像/ビデオを選択できるようにする必要があるのと同じように、カスタム画像とビデオ ギャラリーを作成しています。ビデオギャラリーでも同じことが起こります。

から画像のIDを照会しています

 MediaStore.images 

を使用してサムネイルを取得します

MediaStore.images.thumbnails.getThumbnail 

取得したIDから

以下は私のコードです

            final String[] columns = { MediaStore.Images.Media.DATA, MediaStore.Images.Media._ID };
            final String orderBy = MediaStore.Images.Media.DATE_ADDED;
            imageCursor = activity.managedQuery(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, columns, null,null, orderBy+" DESC");
            int image_column_index = imageCursor.getColumnIndex(MediaStore.Images.Media._ID);
            int count = imageCursor.getCount();
            thumbnails = new Bitmap[count];
            arrPath = new String[count];
            Log.d("count ", ""+count);
            int i=0;


            for ( i= 0; i <count; i++) 
            {
                imageCursor.moveToPosition(i);
                int id = imageCursor.getInt(image_column_index);
                int dataColumnIndex = imageCursor.getColumnIndex(MediaStore.Images.Media._ID);
                thumbnails[i] = MediaStore.Images.Thumbnails.getThumbnail(context.getContentResolver(), id,MediaStore.Images.Thumbnails.MICRO_KIND, null);
                arrPath[i]= imageCursor.getString(dataColumnIndex);
            }

アンドロイドのドキュメントからgetThumbnail は、利用できない場合はサムネイルを作成する必要があります。

同じ問題を引き起こす 1 つの例は、MediaStore.Images.Thumbnails.getThumbnail が NULL ではなく間違ったサムネイルを返しますが、その人は解決策を見つけていません (質問は 2 年前に行われました)。

誰かがこの問題に直面したことがありますか?私は多くの例を経験しており、さらに追加するために asynctask にカーソルをロードしているので、サムネイルの入力は Adroid OS の問題ではないと思います.この問題に利用できる解決策はありますか?かなりイライラします.

4

1 に答える 1

1

問題の解決策が見つかったかどうかはわかりませんが、同様の問題がありました。私のアプリは、何も指していないサムネイル uri を返していました。ただし、ThumbnailUtils.createVideoThumbnail() を呼び出すと、コンテンツ リゾルバーの参照が修正されます。私は最終的に以下のようなものを自分のアプリに落としました:

Bitmap bitmap = Thumbnails.getThumbnail(mActivity.getContentResolver(), videoFile.mId,
                                        Thumbnails.MINI_KIND, null);
if (bitmap == null) {
   ThumbnailUtils.createVideoThumbnail(videoFile.mAbsolutePath, Thumbnails.MINI_KIND);
}

次に、影響を受けた要素を更新するようにアダプターに指示しました。

于 2015-10-29T22:09:47.837 に答える