From f2d02e244a5f2239c4ff9e7462c059dbac5d388a Mon Sep 17 00:00:00 2001
From: HapeLee <1321903405@qq.com>
Date: Mon, 2 Mar 2026 00:07:05 +0800
Subject: [PATCH] =?UTF-8?q?[=E4=BC=98=E5=8C=96]=20=E5=8F=AF=E8=B0=83?=
=?UTF-8?q?=E6=95=B4=E4=B8=8B=E5=88=92=E7=BA=BF=E7=A6=BB=E5=AD=97=E4=BD=93?=
=?UTF-8?q?=E8=B7=9D=E7=A6=BB?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../legado/app/help/config/ReadBookConfig.kt | 8 ++++++
.../book/read/config/UnderlineConfigDialog.kt | 10 +++++++-
.../ui/book/read/page/entities/TextLine.kt | 4 +--
.../res/layout/dialog_underline_config.xml | 25 ++++++++++++++++---
4 files changed, 40 insertions(+), 7 deletions(-)
diff --git a/app/src/main/java/io/legado/app/help/config/ReadBookConfig.kt b/app/src/main/java/io/legado/app/help/config/ReadBookConfig.kt
index ec389c3ca..c0d9e8bc7 100644
--- a/app/src/main/java/io/legado/app/help/config/ReadBookConfig.kt
+++ b/app/src/main/java/io/legado/app/help/config/ReadBookConfig.kt
@@ -415,6 +415,12 @@ object ReadBookConfig {
config.underlineHeight = value
}
+ var underlinePadding: Int
+ get() = config.underlinePadding
+ set(value) {
+ config.underlinePadding = value
+ }
+
var dottedLine: Boolean
get() = config.dottedLine
set(value) {
@@ -593,6 +599,7 @@ object ReadBookConfig {
exportConfig.paragraphIndent = shareConfig.paragraphIndent
exportConfig.underline = shareConfig.underline
exportConfig.underlineHeight = shareConfig.underlineHeight
+ exportConfig.underlinePadding = shareConfig.underlinePadding
exportConfig.dottedLine = shareConfig.dottedLine
exportConfig.dottedBase = shareConfig.dottedBase
exportConfig.dottedRatio = shareConfig.dottedRatio
@@ -710,6 +717,7 @@ object ReadBookConfig {
var titleSegFlag: String = "",//分段判断,碰到指定值时分段
var paragraphIndent: String = " ",//段落缩进
var underline: Boolean = false, //下划线
+ var underlinePadding: Int = 10,
var underlineHeight: Int = 1,
var underlineColor: String = "#3E3D3B",
var underlineColorNight: String = "#ADADAD",
diff --git a/app/src/main/java/io/legado/app/ui/book/read/config/UnderlineConfigDialog.kt b/app/src/main/java/io/legado/app/ui/book/read/config/UnderlineConfigDialog.kt
index 7fbd5789c..7d60dd0ca 100644
--- a/app/src/main/java/io/legado/app/ui/book/read/config/UnderlineConfigDialog.kt
+++ b/app/src/main/java/io/legado/app/ui/book/read/config/UnderlineConfigDialog.kt
@@ -2,12 +2,12 @@ package io.legado.app.ui.book.read.config
import android.os.Bundle
import android.view.View
-import io.legado.app.help.config.ReadBookConfig
import com.jaredrummler.android.colorpicker.ColorPickerDialog
import io.legado.app.R
import io.legado.app.base.BaseBottomSheetDialogFragment
import io.legado.app.constant.EventBus
import io.legado.app.databinding.DialogUnderlineConfigBinding
+import io.legado.app.help.config.ReadBookConfig
import io.legado.app.help.config.ReadBookConfig.dottedLine
import io.legado.app.help.config.ReadBookConfig.underline
import io.legado.app.utils.observeEvent
@@ -87,6 +87,14 @@ class UnderlineConfigDialog : BaseBottomSheetDialogFragment(R.layout.dialog_unde
postEvent(EventBus.UP_CONFIG, arrayListOf(8, 9, 6))
}
}
+
+ binding.btnUnderlinePadding.apply {
+ progress = ReadBookConfig.underlinePadding
+ onChanged = {
+ ReadBookConfig.underlinePadding = it
+ postEvent(EventBus.UP_CONFIG, arrayListOf(8, 9, 6))
+ }
+ }
}
}
\ No newline at end of file
diff --git a/app/src/main/java/io/legado/app/ui/book/read/page/entities/TextLine.kt b/app/src/main/java/io/legado/app/ui/book/read/page/entities/TextLine.kt
index 9e54a9932..1ee520669 100644
--- a/app/src/main/java/io/legado/app/ui/book/read/page/entities/TextLine.kt
+++ b/app/src/main/java/io/legado/app/ui/book/read/page/entities/TextLine.kt
@@ -220,7 +220,7 @@ data class TextLine(
* 绘制下划线
*/
private fun drawUnderline(canvas: Canvas, dottedLine: Boolean) {
- val paint = ChapterProvider.linePaint
+ val paint = ChapterProvider.contentPaint
paint.color = ReadBookConfig.durConfig.curUnderlineColor()
paint.strokeWidth = ReadBookConfig.underlineHeight.toFloat()
paint.pathEffect = if (dottedLine && !AppConfig.isEInkMode)
@@ -228,7 +228,7 @@ data class TextLine(
else
null
- val lineY = height - 1.dpToPx()
+ val lineY = height + (ReadBookConfig.durConfig.underlinePadding - 10).dpToPx()
canvas.drawLine(lineStart + indentWidth, lineY, lineEnd, lineY, paint)
}
diff --git a/app/src/main/res/layout/dialog_underline_config.xml b/app/src/main/res/layout/dialog_underline_config.xml
index 928c633a4..9d25d84d5 100644
--- a/app/src/main/res/layout/dialog_underline_config.xml
+++ b/app/src/main/res/layout/dialog_underline_config.xml
@@ -66,12 +66,29 @@
-
+ android:gravity="bottom">
+
+
+
+
+
+