android get thumbnail of image stored on sdcard whose path is known
MediaStore.Imagesは親指ウリ/ IDから完全な画像を得る
、ような完全な画像からサムネイルを取得する方法についてのソリューションのカップルがありますが、
サムネイルUri(またはサムネイルID)からの画像Uri。これは現実的に見えた私にURIを返し
fun getGalleryImages(): List<LocalImage> {
val baseUri: Uri = MediaStore.Images.Thumbnails.EXTERNAL_CONTENT_URI
val listOfAllImages = ArrayList<LocalImage>()
// Set up an array of the Thumbnail Image ID column we want
val projection = arrayOf(MediaStore.Images.Thumbnails._ID, MediaStore.Images.Thumbnails.IMAGE_ID)
// Create the cursor pointing to the SDCard
val cursor = context.contentResolver.query(
baseUri,
projection,
null,
null,
null)
// Get the column index of the Thumbnails Image ID
val thumbColumnIndex = cursor.getColumnIndexOrThrow(MediaStore.Images.Thumbnails._ID)
val fullColumnIndex = cursor.getColumnIndexOrThrow(MediaStore.Images.Thumbnails.IMAGE_ID)
var thumbnailUri: Uri?
while (cursor.moveToNext()) {
val thumbId = cursor.getString(thumbColumnIndex)
thumbnailUri = Uri.withAppendedPath(MediaStore.Images.Thumbnails.EXTERNAL_CONTENT_URI, "" + thumbId)
// here I save image id for later retrieving full image
val imageId = cursor.getString(fullColumnIndex)
listOfAllImages.add(LocalImage(thumbnailUri = thumbnailUri), imId = imageId)
}
cursor.close()
return listOfAllImages
}
そして、私は画像ID(またはサムネイルによるウリ)によって完全な画像を取得する必要が
private fun getFullImage(imageId: String): Uri {
val projection = arrayOf(MediaStore.Images.Media._ID, MediaStore.Images.Media.DATA)
val cursor = context.contentResolver.query(
MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
projection,
MediaStore.Images.Media._ID + "=?",
arrayOf(imageId),
null)
val columnIndex = cursor.getColumnIndex(projection[0])
if (cursor.moveToFirst()) {
return Uri.withAppendedPath(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, "" + cursor.getString(1))
}
cursor.close()
return Uri.EMPTY
}
:ここ
は、私は、サムネイルを取得する方法であります
content://media/external/images/media//storage/emulated/0/DCIM/Camera/IMG_20170720_085045.jpg
しかし、ウリは、私はそれからイメージを取得することはできませんので、無効であると思われます
val bitmap = MediaStore.Images.Media.getBitmap(activity.contentResolver, image.imageUri)
java.lang.IllegalStateException:不明URL:内容:android.os.Parcel.readExceptionで//media/external/images/media//storage/emulated/0/DCIM/Camera/IMG_20170720_085045.jpg ( Parcel.java:1950)android.content.ContentProviderProxy.openTypedAssetFileでandroid.database.DatabaseUtils.readExceptionWithFileNotFoundExceptionFromParcel(DatabaseUtils.java:146) でandroid.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:183) で(ContentProviderNative。 java:698)
ピカソもこのウリからイメージをロードできません
がコースを外れ、それは私のために働いソリューションです解決すると思います。 – Dharmishtha