图片样式新增single,调整为【滑动/覆盖 + single】可实现一页一图,且图片为当前页面能显示的最大化 (#4463)
* 将请求等待超时时间由15s增加到60s * 图片样式新增single,调整为【滑动/覆盖 + single】可实现一页一图,且图片为当前页面能显示的最大化。
This commit is contained in:
@@ -414,6 +414,7 @@ data class Book(
|
|||||||
const val imgStyleDefault = "DEFAULT"
|
const val imgStyleDefault = "DEFAULT"
|
||||||
const val imgStyleFull = "FULL"
|
const val imgStyleFull = "FULL"
|
||||||
const val imgStyleText = "TEXT"
|
const val imgStyleText = "TEXT"
|
||||||
|
const val imgStyleSingle = "SINGLE"
|
||||||
}
|
}
|
||||||
|
|
||||||
@Parcelize
|
@Parcelize
|
||||||
|
|||||||
@@ -563,7 +563,7 @@ class ReadBookActivity : BaseReadBookActivity(),
|
|||||||
R.id.menu_set_charset -> showCharsetConfig()
|
R.id.menu_set_charset -> showCharsetConfig()
|
||||||
R.id.menu_image_style -> {
|
R.id.menu_image_style -> {
|
||||||
val imgStyles =
|
val imgStyles =
|
||||||
arrayListOf(Book.imgStyleDefault, Book.imgStyleFull, Book.imgStyleText)
|
arrayListOf(Book.imgStyleDefault, Book.imgStyleFull, Book.imgStyleText, Book.imgStyleSingle)
|
||||||
selector(
|
selector(
|
||||||
R.string.image_style,
|
R.string.image_style,
|
||||||
imgStyles
|
imgStyles
|
||||||
|
|||||||
@@ -365,6 +365,36 @@ object ChapterProvider {
|
|||||||
height = size.height * visibleWidth / size.width
|
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 -> {
|
else -> {
|
||||||
if (size.width > visibleWidth) {
|
if (size.width > visibleWidth) {
|
||||||
height = size.height * visibleWidth / size.width
|
height = size.height * visibleWidth / size.width
|
||||||
|
|||||||
@@ -341,6 +341,39 @@ class TextChapterLayout(
|
|||||||
height = size.height * visibleWidth / size.width
|
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 -> {
|
else -> {
|
||||||
if (size.width > visibleWidth) {
|
if (size.width > visibleWidth) {
|
||||||
height = size.height * visibleWidth / size.width
|
height = size.height * visibleWidth / size.width
|
||||||
|
|||||||
Reference in New Issue
Block a user