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