diff --git a/app/src/main/java/io/legado/app/api/controller/BookController.kt b/app/src/main/java/io/legado/app/api/controller/BookController.kt index 50a93603f..727c5d221 100644 --- a/app/src/main/java/io/legado/app/api/controller/BookController.kt +++ b/app/src/main/java/io/legado/app/api/controller/BookController.kt @@ -1,6 +1,7 @@ package io.legado.app.api.controller import androidx.core.graphics.drawable.toBitmap +import com.bumptech.glide.Glide import io.legado.app.api.ReturnData import io.legado.app.data.appDb import io.legado.app.data.entities.Book @@ -63,11 +64,21 @@ object BookController { fun getCover(parameters: Map>): ReturnData { val returnData = ReturnData() val coverPath = parameters["path"]?.firstOrNull() - val ftBitmap = ImageLoader.loadBitmap(appCtx, coverPath).submit() + val ftBitmap = ImageLoader.loadBitmap(appCtx, coverPath) + .override(84, 112) + .centerCrop() + .submit() return try { returnData.setData(ftBitmap.get()) } catch (e: Exception) { - returnData.setData(BookCover.defaultDrawable.toBitmap()) + val defaultBitmap = Glide.with(appCtx) + .asBitmap() + .load(BookCover.defaultDrawable.toBitmap()) + .override(84, 112) + .centerCrop() + .submit() + .get() + returnData.setData(defaultBitmap) } } diff --git a/app/src/main/java/io/legado/app/ui/widget/dialog/PhotoDialog.kt b/app/src/main/java/io/legado/app/ui/widget/dialog/PhotoDialog.kt index 9e67598b2..08b2c8fe4 100644 --- a/app/src/main/java/io/legado/app/ui/widget/dialog/PhotoDialog.kt +++ b/app/src/main/java/io/legado/app/ui/widget/dialog/PhotoDialog.kt @@ -4,6 +4,8 @@ import android.annotation.SuppressLint import android.os.Bundle import android.view.View import android.view.ViewGroup +import com.bumptech.glide.load.engine.DiskCacheStrategy +import com.bumptech.glide.load.resource.bitmap.DownsampleStrategy import com.bumptech.glide.request.RequestOptions import io.legado.app.R import io.legado.app.base.BaseDialogFragment @@ -50,6 +52,9 @@ class PhotoDialog() : BaseDialogFragment(R.layout.dialog_photo_view) { if (file?.exists() == true) { ImageLoader.load(requireContext(), file) .error(R.drawable.image_loading_error) + .dontTransform() + .downsample(DownsampleStrategy.NONE) + .diskCacheStrategy(DiskCacheStrategy.NONE) .into(binding.photoView) } else { ImageLoader.load(requireContext(), src).apply { @@ -62,6 +67,8 @@ class PhotoDialog() : BaseDialogFragment(R.layout.dialog_photo_view) { ) } }.error(BookCover.defaultDrawable) + .dontTransform() + .downsample(DownsampleStrategy.NONE) .into(binding.photoView) } } diff --git a/modules/web/src/views/BookShelf.vue b/modules/web/src/views/BookShelf.vue index 384c39e1d..87e21ee4c 100644 --- a/modules/web/src/views/BookShelf.vue +++ b/modules/web/src/views/BookShelf.vue @@ -186,7 +186,10 @@ const handleBookClick = async (book) => { durChapterIndex = 0, durChapterPos = 0, } = book; - await API.saveBook(book); + // 判断是否为 searchBook + if (book.durChapterIndex === undefined) { + await API.saveBook(book); + } toDetail(bookUrl, name, author, durChapterIndex, durChapterPos); }; const toDetail = (bookUrl, bookName, bookAuthor, chapterIndex, chapterPos) => {