From 01125ca6af49ca94ce4340666a9a06571295f3bf Mon Sep 17 00:00:00 2001 From: kunfei Date: Thu, 14 Apr 2022 20:58:46 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ui/book/read/page/provider/ImageProvider.kt | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/app/src/main/java/io/legado/app/ui/book/read/page/provider/ImageProvider.kt b/app/src/main/java/io/legado/app/ui/book/read/page/provider/ImageProvider.kt index e0f02564f..0bd39871c 100644 --- a/app/src/main/java/io/legado/app/ui/book/read/page/provider/ImageProvider.kt +++ b/app/src/main/java/io/legado/app/ui/book/read/page/provider/ImageProvider.kt @@ -17,6 +17,8 @@ import io.legado.app.utils.isXml import splitties.init.appCtx import java.io.File import java.io.FileOutputStream +import kotlin.math.max +import kotlin.math.min object ImageProvider { @@ -27,10 +29,10 @@ object ImageProvider { /** *缓存bitmap LruCache实现 */ - //private val maxMemory = Runtime.getRuntime().maxMemory() - //private val cacheMemorySize = (maxMemory / 8) as Int - private const val cacheMemorySize: Int = 1024 * 1024 * 1024 //1G - private val bitmapLruCache = object : LruCache(cacheMemorySize) { + private const val M = 1024 * 1024 + private val cacheSize = + max(50 * M, min(100 * M, (Runtime.getRuntime().maxMemory() / 8).toInt())) + private val bitmapLruCache = object : LruCache(cacheSize) { override fun sizeOf(key: String, bitmap: Bitmap): Int { return bitmap.byteCount } @@ -42,9 +44,9 @@ object ImageProvider { newBitmap: Bitmap? ) { if (evicted) { - oldBitmap.recycle() - putDebug("自动回收Bitmap path: $key") - putDebug("bitmapLruCache : ${size()} / ${maxSize()}") + oldBitmap.recycle() + putDebug("自动回收Bitmap path: $key") + putDebug("bitmapLruCache : ${size()} / ${maxSize()}") } } }