diff --git a/app/src/main/java/io/legado/app/ui/book/read/page/provider/ChapterProvider.kt b/app/src/main/java/io/legado/app/ui/book/read/page/provider/ChapterProvider.kt index c45b0a8b0..0bf7e55c8 100644 --- a/app/src/main/java/io/legado/app/ui/book/read/page/provider/ChapterProvider.kt +++ b/app/src/main/java/io/legado/app/ui/book/read/page/provider/ChapterProvider.kt @@ -558,7 +558,7 @@ object ChapterProvider { } val residualWidth = visibleWidth - desiredWidth val spaceSize = text.count { it == ' ' } - val (words, widths) = getStringArrayAndTextWidths(text, textWidths) + val (words, widths) = getStringArrayAndTextWidths(text, textWidths, textPaint) if (spaceSize > 1) { val d = residualWidth / spaceSize var x = startX @@ -608,7 +608,7 @@ object ChapterProvider { ) { val indentLength = ReadBookConfig.paragraphIndent.length var x = startX - val (words, widths) = getStringArrayAndTextWidths(text, textWidths) + val (words, widths) = getStringArrayAndTextWidths(text, textWidths, textPaint) words.forEachIndexed { index, char -> val cw = widths[index] val x1 = x + cw @@ -623,7 +623,8 @@ object ChapterProvider { fun getStringArrayAndTextWidths( text: String, - textWidths: List + textWidths: List, + textPaint: TextPaint ): Pair, List> { val charArray = text.toCharArray() val strList = ArrayList() @@ -639,7 +640,13 @@ object ChapterProvider { charArray[i].toString() } strList.add(char) - textWidthList.add(textWidths[i]) + val w = textWidths[i] + if (w == 0f && i - 1 >= 0) { + textWidthList[i - 1] = textPaint.measureText(strList[i - 1]) + textWidthList.add(textPaint.measureText(char)) + } else { + textWidthList.add(w) + } } return strList to textWidthList } diff --git a/app/src/main/java/io/legado/app/ui/book/read/page/provider/ZhLayout.kt b/app/src/main/java/io/legado/app/ui/book/read/page/provider/ZhLayout.kt index ead0d2209..ab8db392f 100644 --- a/app/src/main/java/io/legado/app/ui/book/read/page/provider/ZhLayout.kt +++ b/app/src/main/java/io/legado/app/ui/book/read/page/provider/ZhLayout.kt @@ -53,7 +53,8 @@ class ZhLayout( curPaint.getTextWidths(text as String, widthsArray) val (words, widths) = ChapterProvider.getStringArrayAndTextWidths( text, - widthsArray.asList() + widthsArray.asList(), + curPaint ) var lineW = 0f var cwPre = 0f diff --git a/settings.gradle b/settings.gradle index 432530fb7..cddd92de5 100644 --- a/settings.gradle +++ b/settings.gradle @@ -5,10 +5,11 @@ pluginManagement { google() mavenCentral() //镜像仓库,无法连接源仓库自行启用镜像仓库,不要提交修改 - //maven {url"https://maven-central-asia.storage-download.googleapis.com/maven2/"} + //maven { url "https://maven-central-asia.storage-download.googleapis.com/maven2/" } //maven { url 'https://maven.aliyun.com/repository/google' } //maven { url 'https://maven.aliyun.com/repository/public' } //maven { url 'https://maven.aliyun.com/repository/gradle-plugin' } + //maven { url 'https://repo.huaweicloud.com/repository/maven/' } } } @@ -20,10 +21,10 @@ dependencyResolutionManagement { mavenCentral() maven { url 'https://jitpack.io' } //镜像仓库,无法连接源仓库自行启用镜像仓库,不要提交修改 - //maven {url"https://maven-central-asia.storage-download.googleapis.com/maven2/"} + //maven { url "https://maven-central-asia.storage-download.googleapis.com/maven2/" } //maven { url 'https://maven.aliyun.com/repository/google' } //maven { url 'https://maven.aliyun.com/repository/public' } - + //maven { url 'https://repo.huaweicloud.com/repository/maven/' } } } rootProject.name = 'legado'