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"> + + + + + +