Horis 3 лет назад
Родитель
Сommit
b20a5b95b8

+ 11 - 4
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<Float>
+        textWidths: List<Float>,
+        textPaint: TextPaint
     ): Pair<List<String>, List<Float>> {
         val charArray = text.toCharArray()
         val strList = ArrayList<String>()
@@ -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
     }

+ 2 - 1
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

+ 4 - 3
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'