feat: 优化代码

pull/134/head^2
kunfei 5 years ago
parent 113ba477db
commit 9e7a6750ae
  1. 12
      app/src/main/java/io/legado/app/ui/book/read/page/ChapterProvider.kt

@ -107,15 +107,15 @@ object ChapterProvider {
val textLine = TextLine(isTitle = isTitle) val textLine = TextLine(isTitle = isTitle)
val words = val words =
text.substring(layout.getLineStart(lineIndex), layout.getLineEnd(lineIndex)) text.substring(layout.getLineStart(lineIndex), layout.getLineEnd(lineIndex))
stringBuilder.append(words)
textLine.text = words textLine.text = words
val desiredWidth = layout.getLineWidth(lineIndex) val desiredWidth = layout.getLineWidth(lineIndex)
var isLastLine = false
if (lineIndex == 0 && layout.lineCount > 1 && !isTitle) { if (lineIndex == 0 && layout.lineCount > 1 && !isTitle) {
//第一行 //第一行
addCharsToLineFirst(textLine, words, textPaint, desiredWidth) addCharsToLineFirst(textLine, words, textPaint, desiredWidth)
} else if (lineIndex == layout.lineCount - 1) { } else if (lineIndex == layout.lineCount - 1) {
//最后一行 //最后一行
stringBuilder.append("\n") isLastLine = true
val x = if (isTitle && ReadBookConfig.titleMode == 1) val x = if (isTitle && ReadBookConfig.titleMode == 1)
(visibleWidth - layout.getLineWidth(lineIndex)) / 2 (visibleWidth - layout.getLineWidth(lineIndex)) / 2
else 0f else 0f
@ -126,19 +126,25 @@ object ChapterProvider {
} }
if (durY + textPaint.textHeight < visibleHeight) { if (durY + textPaint.textHeight < visibleHeight) {
//当前页面新增行 //当前页面新增行
stringBuilder.append(words)
if (isLastLine) stringBuilder.append("\n")
textLine.upTopBottom(durY, textPaint) textLine.upTopBottom(durY, textPaint)
textPages.last().textLines.add(textLine) textPages.last().textLines.add(textLine)
durY += textPaint.textHeight * lineSpacingExtra / 10f durY += textPaint.textHeight * lineSpacingExtra / 10f
textPages.last().height = durY textPages.last().height = durY
} else { } else {
//当前页面结束,设置各种值 //当前页面结束,设置各种值
stringBuilder.append(words)
if (isLastLine) stringBuilder.append("\n")
textPages.last().text = stringBuilder.toString() textPages.last().text = stringBuilder.toString()
stringBuilder.clear()
pageLines.add(textPages.last().textLines.size) pageLines.add(textPages.last().textLines.size)
pageLengths.add(textPages.last().text.length) pageLengths.add(textPages.last().text.length)
textPages.last().height = durY textPages.last().height = durY
//新建页面 //新建页面
textPages.add(TextPage()) textPages.add(TextPage())
stringBuilder.clear()
stringBuilder.append(words)
if (isLastLine) stringBuilder.append("\n")
textLine.upTopBottom(0f, textPaint) textLine.upTopBottom(0f, textPaint)
textPages.last().textLines.add(textLine) textPages.last().textLines.add(textLine)
durY = textPaint.textHeight * lineSpacingExtra / 10f durY = textPaint.textHeight * lineSpacingExtra / 10f

Loading…
Cancel
Save