mirror of
https://github.com/gedoor/legado.git
synced 2025-01-07 03:06:58 +08:00
图片样式新增single,调整为【滑动/覆盖 + single】可实现一页一图,且图片为当前页面能显示的最大化 (#4463)
* 将请求等待超时时间由15s增加到60s * 图片样式新增single,调整为【滑动/覆盖 + single】可实现一页一图,且图片为当前页面能显示的最大化。
This commit is contained in:
parent
251b415ade
commit
5bc9cc427b
@ -414,6 +414,7 @@ data class Book(
|
||||
const val imgStyleDefault = "DEFAULT"
|
||||
const val imgStyleFull = "FULL"
|
||||
const val imgStyleText = "TEXT"
|
||||
const val imgStyleSingle = "SINGLE"
|
||||
}
|
||||
|
||||
@Parcelize
|
||||
|
@ -563,7 +563,7 @@ class ReadBookActivity : BaseReadBookActivity(),
|
||||
R.id.menu_set_charset -> showCharsetConfig()
|
||||
R.id.menu_image_style -> {
|
||||
val imgStyles =
|
||||
arrayListOf(Book.imgStyleDefault, Book.imgStyleFull, Book.imgStyleText)
|
||||
arrayListOf(Book.imgStyleDefault, Book.imgStyleFull, Book.imgStyleText, Book.imgStyleSingle)
|
||||
selector(
|
||||
R.string.image_style,
|
||||
imgStyles
|
||||
|
@ -365,6 +365,36 @@ object ChapterProvider {
|
||||
height = size.height * visibleWidth / size.width
|
||||
}
|
||||
|
||||
Book.imgStyleSingle -> {
|
||||
width = visibleWidth
|
||||
height = size.height * visibleWidth / size.width
|
||||
if (height > visibleHeight) {
|
||||
width = width * visibleHeight / height
|
||||
height = visibleHeight
|
||||
}
|
||||
if (durY > 0f) {
|
||||
val textPage = textPages.last()
|
||||
if (doublePage && absStartX < viewWidth / 2) {
|
||||
//当前页面左列结束
|
||||
textPage.leftLineSize = textPage.lineSize
|
||||
absStartX = viewWidth / 2 + paddingLeft
|
||||
} else {
|
||||
//当前页面结束
|
||||
if (textPage.leftLineSize == 0) {
|
||||
textPage.leftLineSize = textPage.lineSize
|
||||
}
|
||||
textPage.text = stringBuilder.toString().ifEmpty { "本页无文字内容" }
|
||||
stringBuilder.clear()
|
||||
textPages.add(TextPage())
|
||||
}
|
||||
// 双页的 durY 不正确,可能会小于实际高度
|
||||
if (textPage.height < durY) {
|
||||
textPage.height = durY
|
||||
}
|
||||
durY = 0f
|
||||
}
|
||||
}
|
||||
|
||||
else -> {
|
||||
if (size.width > visibleWidth) {
|
||||
height = size.height * visibleWidth / size.width
|
||||
|
@ -341,6 +341,39 @@ class TextChapterLayout(
|
||||
height = size.height * visibleWidth / size.width
|
||||
}
|
||||
|
||||
Book.imgStyleSingle -> {
|
||||
width = ChapterProvider.visibleWidth
|
||||
height = size.height * ChapterProvider.visibleWidth / size.width
|
||||
if (height > ChapterProvider.visibleHeight) {
|
||||
width = width * ChapterProvider.visibleHeight / height
|
||||
height = ChapterProvider.visibleHeight
|
||||
}
|
||||
if (durY > 0f) {
|
||||
val textPage = pendingTextPage
|
||||
// 双页的 durY 不正确,可能会小于实际高度
|
||||
if (textPage.height < durY) {
|
||||
textPage.height = durY
|
||||
}
|
||||
if (doublePage && absStartX < viewWidth / 2) {
|
||||
//当前页面左列结束
|
||||
textPage.leftLineSize = textPage.lineSize
|
||||
absStartX = viewWidth / 2 + paddingLeft
|
||||
} else {
|
||||
//当前页面结束
|
||||
if (textPage.leftLineSize == 0) {
|
||||
textPage.leftLineSize = textPage.lineSize
|
||||
}
|
||||
textPage.text = stringBuilder.toString().ifEmpty { "本页无文字内容" }
|
||||
stringBuilder.clear()
|
||||
textPages.add(textPage)
|
||||
coroutineContext.ensureActive()
|
||||
onPageCompleted()
|
||||
pendingTextPage = TextPage()
|
||||
}
|
||||
durY = 0f
|
||||
}
|
||||
}
|
||||
|
||||
else -> {
|
||||
if (size.width > visibleWidth) {
|
||||
height = size.height * visibleWidth / size.width
|
||||
|
Loading…
Reference in New Issue
Block a user