正文规则添加图片样式规则,可以设置为FULL

pull/279/head
gedoor 4 years ago
parent 5f06b4afd6
commit 3436708a94
  1. 26
      app/src/main/java/io/legado/app/service/help/ReadBook.kt
  2. 40
      app/src/main/java/io/legado/app/ui/book/read/page/provider/ChapterProvider.kt

@ -313,7 +313,13 @@ object ReadBook {
when (chapter.index) {
durChapterIndex -> {
curTextChapter =
ChapterProvider.getTextChapter(book, chapter, contents, chapterSize)
ChapterProvider.getTextChapter(
book,
chapter,
contents,
chapterSize,
imageStyle
)
if (upContent) callBack?.upContent(resetPageOffset = resetPageOffset)
callBack?.upView()
curPageChanged()
@ -322,12 +328,24 @@ object ReadBook {
}
durChapterIndex - 1 -> {
prevTextChapter =
ChapterProvider.getTextChapter(book, chapter, contents, chapterSize)
ChapterProvider.getTextChapter(
book,
chapter,
contents,
chapterSize,
imageStyle
)
if (upContent) callBack?.upContent(-1, resetPageOffset)
}
durChapterIndex + 1 -> {
nextTextChapter =
ChapterProvider.getTextChapter(book, chapter, contents, chapterSize)
ChapterProvider.getTextChapter(
book,
chapter,
contents,
chapterSize,
imageStyle
)
if (upContent) callBack?.upContent(1, resetPageOffset)
}
}
@ -338,6 +356,8 @@ object ReadBook {
}
}
private val imageStyle get() = webBook?.bookSource?.ruleContent?.imageStyle
fun saveRead() {
Coroutine.async {
book?.let { book ->

@ -51,7 +51,8 @@ object ChapterProvider {
book: Book,
bookChapter: BookChapter,
contents: List<String>,
chapterSize: Int
chapterSize: Int,
imageStyle: String?
): TextChapter {
val textPages = arrayListOf<TextPage>()
val pageLines = arrayListOf<Int>()
@ -69,7 +70,7 @@ object ChapterProvider {
src?.let {
durY =
setTypeImage(
book, bookChapter, src, durY, textPages
book, bookChapter, src, durY, textPages, imageStyle
)
}
} else {
@ -116,25 +117,32 @@ object ChapterProvider {
chapter: BookChapter,
src: String,
y: Float,
textPages: ArrayList<TextPage>
textPages: ArrayList<TextPage>,
imageStyle: String?
): Float {
var durY = y
ImageProvider.getImage(book, chapter.index, src)?.let {
var height = it.height
var width = it.width
if (it.width > visibleWidth) {
height = it.height * visibleWidth / it.width
width =
visibleWidth
}
if (height > visibleHeight) {
width = width * visibleHeight / height
height =
visibleHeight
}
if (durY + height > visibleHeight) {
textPages.add(TextPage())
durY = 0f
when (imageStyle?.toUpperCase()) {
"FULL" -> {
width = visibleWidth
height = it.width / width * it.height
}
else -> {
if (it.width > visibleWidth) {
height = it.height * visibleWidth / it.width
width = visibleWidth
}
if (height > visibleHeight) {
width = width * visibleHeight / height
height = visibleHeight
}
if (durY + height > visibleHeight) {
textPages.add(TextPage())
durY = 0f
}
}
}
val textLine = TextLine(isImage = true)
textLine.lineTop = durY

Loading…
Cancel
Save