Проблема с миниатюрой катушки, как изменить большое изображение на миниатюру в Coil?Android

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Проблема с миниатюрой катушки, как изменить большое изображение на миниатюру в Coil?

Сообщение Anonymous »

Я работал над приложением «Галерея», где пытался декодировать или уменьшить масштаб большого изображения до миниатюры.
Я пробовал этот метод, чтобы уменьшить масштаб большого изображения до маленького, но все равно не удалось добиться лучшей производительности в lazycolumn, поэтому немногие из вас, ребята, имеют лучшую стратегию, которую вы могли бы обсудить, поэтому вот код декодера.

Код: Выделить всё

 class ImageDecoder constructor(
private val  sourceResult : SourceResult,
private val  options: Options)  : Decoder {

@SuppressLint("NewApi")
override suspend fun decode(): DecodeResult = withContext(Dispatchers.IO){
try {

val file = sourceResult.source.file().toFile()

val tempBitmap =   bitmapCache.get(file.path)

if(tempBitmap!=null) {
DecodeResult(
drawable = BitmapDrawable(options.context.resources, tempBitmap),
isSampled = false) }

val    localBitmap = ThumbnailUtils.createImageThumbnail(file,android.util.Size(200,200),null )
bitmapCache.put(file.path ,localBitmap)
DecodeResult(
drawable = BitmapDrawable(options.context.resources, localBitmap),
isSampled = false)

} catch (e : Exception){

DecodeResult(
drawable = options.context.getDrawable(R.drawable.image_icon)!!,
isSampled = false
) }}
и это мой код класса ImageLoader в классе приложения

Код: Выделить всё

        @HiltAndroidApp
class GalleryApplication  : Application() , ImageLoaderFactory , Configuration.Provider  {

@Inject
lateinit var workerFactory: HiltWorkerFactory

override val workManagerConfiguration: Configuration
get() = Configuration.Builder()
.setWorkerFactory(workerFactory)
.build()

override fun newImageLoader(): ImageLoader {
return ImageLoader(this).newBuilder()
.placeholder(R.drawable.placeholder)
.components {

add(com.example.smartgalleryapp.decoder.ImageDecoder.ImageDecoderFactory())

}
.memoryCachePolicy(CachePolicy.ENABLED)
.memoryCache {
MemoryCache.Builder(this)
.maxSizePercent(percent = 0.25)
.strongReferencesEnabled(false)
.build() }
.diskCachePolicy(CachePolicy.ENABLED)
.diskCache {
DiskCache.Builder()
.maxSizePercent(percent = 0.25)
.directory(cacheDir)
.build() }
.logger(DebugLogger()).build() }
}

Подробнее здесь: https://stackoverflow.com/questions/791 ... il-in-coil
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Android»