커서를 사용하여 미디어 스토어에서 썸네일 (gridview로)을로드하는 앱이 있습니다.
CursorLoader cursorLoader = null;
if (Integer.valueOf(android.os.Build.VERSION.SDK_INT) >= android.os.Build.VERSION_CODES.HONEYCOMB) {
String[] from = { MediaStore.Files.FileColumns._ID,
MediaStore.Files.FileColumns.DATA,
MediaStore.Files.FileColumns.DATE_ADDED,
MediaStore.Files.FileColumns.MEDIA_TYPE,
MediaStore.Files.FileColumns.MIME_TYPE,
MediaStore.Files.FileColumns.TITLE };
projection = from;
String selection = MediaStore.Files.FileColumns.MEDIA_TYPE + "="
+ MediaStore.Files.FileColumns.MEDIA_TYPE_IMAGE + " OR "
+ MediaStore.Files.FileColumns.MEDIA_TYPE + "="
+ MediaStore.Files.FileColumns.MEDIA_TYPE_VIDEO;
Uri queryUri = MediaStore.Files.getContentUri("external");
cursorLoader = new CursorLoader(this, queryUri, projection,
selection, null, MediaStore.Files.FileColumns.DATE_ADDED
+ " DESC");
} else {
String[] from = { MediaStore.MediaColumns.DATE_ADDED };
projection = from;
Uri sourceImageUri = MediaStore.Images.Media.EXTERNAL_CONTENT_URI;
cursorLoader = new CursorLoader(this, sourceImageUri, null, null,
null, MediaStore.MediaColumns.DATE_ADDED + " DESC");
}
Cursor cursor = null;
if (cursorLoader != null) {
cursor = cursorLoader.loadInBackground();
mGalleryAdapter = new GalleryAdapter(this,
android.R.layout.simple_list_item_1, cursor, projection,
to, CursorAdapter.FLAG_REGISTER_CONTENT_OBSERVER);
gallery.setAdapter(mGalleryAdapter);
gallery.setOnItemClickListener(myOnItemClickListener);
}
그러나 일부 최신 이미지는 썸네일없이로드되므로 다소 어리 석습니다. 썸네일은 휴대폰에서 갤러리 앱 (사진)을 열 때만 생성됩니다.
썸네일없이 비어있는 이미지가 없도록 장치에서 프로그래밍 방식으로 모든 썸네일을 어떻게 새로 고칠 수 있습니까?
4.4를 포함한 모든 Android 버전에서 작동하고 싶습니다. 미리 감사드립니다 :)
MediaStore.Images.Thumbnails.getThumbnail()
또는 사용 MediaStore.Video.Thumbnails.getThumbnail()
-차단 클래스이며 찾을 수없는 경우 새 비트 맵을 생성합니다. 훨씬 간단합니다.
내가 가지고 있다고 가정하는 파일의 MediaStore ID가 필요하며 활동 또는 컨텍스트를 통해 표준 getContentResolver ()를 사용할 수 있습니다. 이 방법을 사용하면 MINI 또는 MICRO 크기로 비트 맵을 직접 가져올 수도 있습니다.
여기 에 대한 자세한 내용 .
나눌 수 없다고 말했듯이
sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED,
Uri.parse("file://"
+ Environment.getExternalStorageDirectory())));
그러나 Android 4.4에서는 작동하지 않으므로 API 19+ 용 MediaScanner 클래스를 사용하는 것이 좋습니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다