pull/1649/head
kunfei 3 years ago
parent f1cea348e9
commit ea3550a622
  1. 4
      app/src/main/java/io/legado/app/ui/book/read/page/PageView.kt
  2. 21
      app/src/main/java/io/legado/app/ui/widget/BatteryView.kt

@ -200,14 +200,14 @@ class PageView(context: Context) : FrameLayout(context) {
fun upBattery(battery: Int) {
this.battery = battery
tvBattery?.setTextAndBattery(battery = battery)
tvBattery?.setBattery(battery)
upTimeBattery()
}
@SuppressLint("SetTextI18n")
private fun upTimeBattery() {
val time = timeFormat.format(Date(System.currentTimeMillis()))
tvTimeBattery?.setTextAndBattery(time, battery)
tvTimeBattery?.setBattery(battery, time)
}
fun setContent(textPage: TextPage, resetPageOffset: Boolean = true) {

@ -53,28 +53,39 @@ class BatteryView @JvmOverloads constructor(
}
@SuppressLint("SetTextI18n")
fun setTextAndBattery(text: String = "", battery: Int = 0) {
fun setBattery(battery: Int, text: String? = null) {
this.battery = battery
if (isBattery) {
batteryWidth = StaticLayout.getDesiredWidth(battery.toString(), paint).toInt()
}
if (text.isNullOrEmpty()) {
setText(battery.toString())
} else {
setText("$text $battery")
}
}
override fun onDraw(canvas: Canvas) {
super.onDraw(canvas)
if (!isBattery) return
layout.getLineBounds(0, outFrame)
val batteryStart = layout
.getPrimaryHorizontal(text.length - battery.toString().length)
.toInt() + 3.dp
val batteryEnd = layout
.getSecondaryHorizontal(text.length)
.toInt() + 6.dp
outFrame.set(
width - 6.dp - batteryWidth,
batteryStart,
1.dp,
width - 3.dp,
batteryEnd,
height - 1.dp
)
val dj = (outFrame.bottom - outFrame.top) / 3
polar.set(
outFrame.right,
batteryEnd,
outFrame.top + dj,
width - 1.dp,
batteryEnd + 2.dp,
outFrame.bottom - dj
)
batteryPaint.style = Paint.Style.STROKE

Loading…
Cancel
Save