|
|
@ -171,18 +171,19 @@ class ContentTextView(context: Context, attrs: AttributeSet?) : View(context, at |
|
|
|
book, |
|
|
|
book, |
|
|
|
textChar.charData, |
|
|
|
textChar.charData, |
|
|
|
ReadBook.bookSource, |
|
|
|
ReadBook.bookSource, |
|
|
|
true |
|
|
|
(textChar.end - textChar.start).toInt(), |
|
|
|
)?.let { |
|
|
|
(lineBottom - lineTop).toInt() |
|
|
|
|
|
|
|
)?.let { bitmap -> |
|
|
|
val rectF = if (isImageLine) { |
|
|
|
val rectF = if (isImageLine) { |
|
|
|
RectF(textChar.start, lineTop, textChar.end, lineBottom) |
|
|
|
RectF(textChar.start, lineTop, textChar.end, lineBottom) |
|
|
|
} else { |
|
|
|
} else { |
|
|
|
/*以宽度为基准保持图片的原始比例叠加,当div为负数时,允许高度比字符更高*/ |
|
|
|
/*以宽度为基准保持图片的原始比例叠加,当div为负数时,允许高度比字符更高*/ |
|
|
|
val h = (textChar.end - textChar.start) / it.width * it.height |
|
|
|
val h = (textChar.end - textChar.start) / bitmap.width * bitmap.height |
|
|
|
val div = (lineBottom - lineTop - h) / 2 |
|
|
|
val div = (lineBottom - lineTop - h) / 2 |
|
|
|
RectF(textChar.start, lineTop + div, textChar.end, lineBottom - div) |
|
|
|
RectF(textChar.start, lineTop + div, textChar.end, lineBottom - div) |
|
|
|
} |
|
|
|
} |
|
|
|
kotlin.runCatching { |
|
|
|
kotlin.runCatching { |
|
|
|
canvas.drawBitmap(it, null, rectF, null) |
|
|
|
canvas.drawBitmap(bitmap, null, rectF, null) |
|
|
|
}.onFailure { e -> |
|
|
|
}.onFailure { e -> |
|
|
|
context.toastOnUi(e.localizedMessage) |
|
|
|
context.toastOnUi(e.localizedMessage) |
|
|
|
} |
|
|
|
} |
|
|
|