From 67361e44f37d6bb5412f5b557e5a044d0701175f Mon Sep 17 00:00:00 2001 From: fansangg Date: Tue, 16 Jun 2026 23:25:57 +0800 Subject: [PATCH 1/2] =?UTF-8?q?fix=EF=BC=9A=E7=BF=BB=E9=A1=B5=E5=8A=A8?= =?UTF-8?q?=E7=94=BB=E4=B8=8B=E9=A1=B5=E7=9C=89=E9=A1=B5=E8=84=9A=E4=BF=A1?= =?UTF-8?q?=E6=81=AF=E9=97=AA=E7=83=81=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../legado/app/ui/book/read/page/PageView.kt | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/app/src/main/java/io/legado/app/ui/book/read/page/PageView.kt b/app/src/main/java/io/legado/app/ui/book/read/page/PageView.kt index ff9ab11c6..50691979c 100644 --- a/app/src/main/java/io/legado/app/ui/book/read/page/PageView.kt +++ b/app/src/main/java/io/legado/app/ui/book/read/page/PageView.kt @@ -2,6 +2,8 @@ package io.legado.app.ui.book.read.page import android.annotation.SuppressLint import android.content.Context +import android.graphics.Bitmap +import android.graphics.Canvas import android.graphics.Typeface import android.graphics.drawable.LayerDrawable import android.view.LayoutInflater @@ -27,6 +29,7 @@ import io.legado.app.ui.widget.BatteryView import io.legado.app.utils.activity import io.legado.app.utils.applyNavigationBarPadding import io.legado.app.utils.applyStatusBarPadding +import io.legado.app.utils.canvasrecorder.CanvasRecorder import io.legado.app.utils.dpToPx import io.legado.app.utils.gone import io.legado.app.utils.isContentScheme @@ -35,6 +38,7 @@ import io.legado.app.utils.statusBarHeight import splitties.views.backgroundColor import java.io.File import java.util.Date +import io.legado.app.utils.screenshot as viewScreenshot /** * 页面视图 @@ -468,6 +472,30 @@ class PageView( } } + fun layoutSync() { + measure( + MeasureSpec.makeMeasureSpec(width, MeasureSpec.EXACTLY), + MeasureSpec.makeMeasureSpec(height, MeasureSpec.EXACTLY) + ) + layout(left, top, right, bottom) + } + + fun screenshot(canvasRecorder: CanvasRecorder) { + if (!isMainView && !isScroll) { + setProgress(textPage) + layoutSync() + } + viewScreenshot(canvasRecorder) + } + + fun screenshot(bitmap: Bitmap? = null, canvas: Canvas? = null): Bitmap? { + if (!isMainView && !isScroll) { + setProgress(textPage) + layoutSync() + } + return viewScreenshot(bitmap, canvas) + } + fun setAutoPager(autoPager: AutoPager?) { binding.contentTextView.setAutoPager(autoPager) } From 6b583b966bc111d9ae16c720023408aeb288ecb0 Mon Sep 17 00:00:00 2001 From: fansan Date: Wed, 17 Jun 2026 18:51:48 +0800 Subject: [PATCH 2/2] =?UTF-8?q?perf=EF=BC=9A=E4=BC=98=E5=8C=96layoutSync?= =?UTF-8?q?=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/java/io/legado/app/ui/book/read/page/PageView.kt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/src/main/java/io/legado/app/ui/book/read/page/PageView.kt b/app/src/main/java/io/legado/app/ui/book/read/page/PageView.kt index 50691979c..bc7190093 100644 --- a/app/src/main/java/io/legado/app/ui/book/read/page/PageView.kt +++ b/app/src/main/java/io/legado/app/ui/book/read/page/PageView.kt @@ -473,6 +473,8 @@ class PageView( } fun layoutSync() { + if (width <= 0 || height <= 0) return + if (!isLayoutRequested) return measure( MeasureSpec.makeMeasureSpec(width, MeasureSpec.EXACTLY), MeasureSpec.makeMeasureSpec(height, MeasureSpec.EXACTLY)