Сначала загрузите изображение, если оно еще не загружено
GlideApp - это созданный API:
Добавьте класс с точно таким же именем. Обязательно восстановите после добавления этого фрагмента кода:
вам нужно использовать kapt вместо annotactionProccesser на Kotlin.
@GlideModule
class MyAppGlideModule : AppGlideModule()
diskCacheStrategy(DiskCacheStrategy.NONE)
не позволяйте Glide кэшировать это изображение. Target.Size_Original
сохранить исходный размер при загрузке изображения с URL.
GlideApp
.with(context)
.asBitmap()
.load(uri)
.diskCacheStrategy(DiskCacheStrategy.NONE)
.into(object : CustomTarget<Bitmap>(Target.SIZE_ORIGINAL, Target.SIZE_ORIGINAL) {
override fun onLoadCleared(placeholder: Drawable?) {}
override fun onResourceReady(resource: Bitmap, transition: Transition<in Bitmap>?) {
//Save image file
saveFile(resource)
//Load into imageview if needed
}
}
})
Сохранить файл изображения. Для этого рекомендуется использовать фоновые потоки.
val randomFilename = //generate a name based on your preferences
val file = File(saveDirectory, randomFilename)
val fos = FileOutputStream(file)
val bos = BufferedOutputStream(fos)
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, bos)
bos.close()
Обновите базу данных вашей комнаты, указав имя файла, чтобы получить его позже.
@Query("UPDATE table_name SET image_filename = :fileName WHERE id = :id ")
fun updateImageFilename(id: Int, filename: String)