mirror of
https://github.com/gedoor/legado.git
synced 2024-08-30 09:23:26 +08:00
优化翻页动画
This commit is contained in:
parent
a5548e8ee6
commit
c4235345d7
@ -2,6 +2,7 @@ package io.legado.app.ui.book.read.page
|
||||
|
||||
import android.annotation.SuppressLint
|
||||
import android.content.Context
|
||||
import android.graphics.Bitmap
|
||||
import android.graphics.drawable.Drawable
|
||||
import android.view.LayoutInflater
|
||||
import android.widget.FrameLayout
|
||||
@ -13,6 +14,7 @@ import io.legado.app.data.entities.Bookmark
|
||||
import io.legado.app.databinding.ViewBookPageBinding
|
||||
import io.legado.app.help.config.ReadBookConfig
|
||||
import io.legado.app.help.config.ReadTipConfig
|
||||
import io.legado.app.help.coroutine.Coroutine
|
||||
import io.legado.app.model.ReadBook
|
||||
import io.legado.app.ui.book.read.ReadBookActivity
|
||||
import io.legado.app.ui.book.read.page.entities.TextPage
|
||||
@ -41,6 +43,9 @@ class PageView(context: Context) : FrameLayout(context) {
|
||||
private var tvTimeBattery: BatteryView? = null
|
||||
private var tvTimeBatteryP: BatteryView? = null
|
||||
|
||||
var bitmap: Bitmap? = null
|
||||
private set
|
||||
|
||||
val headerHeight: Int
|
||||
get() {
|
||||
val h1 = if (ReadBookConfig.hideStatusBar) 0 else context.statusBarHeight
|
||||
@ -59,6 +64,14 @@ class PageView(context: Context) : FrameLayout(context) {
|
||||
}
|
||||
}
|
||||
|
||||
private fun upBitmap() {
|
||||
Coroutine.async {
|
||||
val screenshot = screenshot()
|
||||
bitmap?.recycle()
|
||||
bitmap = screenshot
|
||||
}
|
||||
}
|
||||
|
||||
fun upStyle() = binding.run {
|
||||
upTipStyle()
|
||||
ReadBookConfig.let {
|
||||
@ -225,6 +238,7 @@ class PageView(context: Context) : FrameLayout(context) {
|
||||
val time = timeFormat.format(Date(System.currentTimeMillis()))
|
||||
tvTimeBattery?.setBattery(battery, time)
|
||||
tvTimeBatteryP?.text = "$time $battery%"
|
||||
upBitmap()
|
||||
}
|
||||
|
||||
fun setContent(textPage: TextPage, resetPageOffset: Boolean = true) {
|
||||
@ -233,6 +247,7 @@ class PageView(context: Context) : FrameLayout(context) {
|
||||
resetPageOffset()
|
||||
}
|
||||
binding.contentTextView.setContent(textPage)
|
||||
upBitmap()
|
||||
}
|
||||
|
||||
fun setContentDescription(content: String) {
|
||||
|
@ -4,7 +4,6 @@ import android.graphics.Bitmap
|
||||
import android.view.MotionEvent
|
||||
import io.legado.app.ui.book.read.page.ReadView
|
||||
import io.legado.app.ui.book.read.page.entities.PageDirection
|
||||
import io.legado.app.utils.screenshot
|
||||
|
||||
abstract class HorizontalPageDelegate(readView: ReadView) : PageDelegate(readView) {
|
||||
|
||||
@ -21,15 +20,15 @@ abstract class HorizontalPageDelegate(readView: ReadView) : PageDelegate(readVie
|
||||
when (mDirection) {
|
||||
PageDirection.PREV -> {
|
||||
prevBitmap?.recycle()
|
||||
prevBitmap = prevPage.screenshot()
|
||||
prevBitmap = prevPage.bitmap?.copy(Bitmap.Config.ARGB_8888, false)
|
||||
curBitmap?.recycle()
|
||||
curBitmap = curPage.screenshot()
|
||||
curBitmap = curPage.bitmap?.copy(Bitmap.Config.ARGB_8888, false)
|
||||
}
|
||||
PageDirection.NEXT -> {
|
||||
nextBitmap?.recycle()
|
||||
nextBitmap = nextPage.screenshot()
|
||||
nextBitmap = nextPage.bitmap?.copy(Bitmap.Config.ARGB_8888, false)
|
||||
curBitmap?.recycle()
|
||||
curBitmap = curPage.screenshot()
|
||||
curBitmap = curPage.bitmap?.copy(Bitmap.Config.ARGB_8888, false)
|
||||
}
|
||||
else -> Unit
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user