|  |  | @ -150,6 +150,7 @@ class ContentTextView(context: Context, attrs: AttributeSet?) : View(context, at | 
			
		
	
		
		
			
				
					
					|  |  |  |     /** |  |  |  |     /** | 
			
		
	
		
		
			
				
					
					|  |  |  |      * 绘制图片 |  |  |  |      * 绘制图片 | 
			
		
	
		
		
			
				
					
					|  |  |  |      */ |  |  |  |      */ | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     @Suppress("UNUSED_PARAMETER") | 
			
		
	
		
		
			
				
					
					|  |  |  |     private fun drawImage( |  |  |  |     private fun drawImage( | 
			
		
	
		
		
			
				
					
					|  |  |  |         canvas: Canvas, |  |  |  |         canvas: Canvas, | 
			
		
	
		
		
			
				
					
					|  |  |  |         textPage: TextPage, |  |  |  |         textPage: TextPage, | 
			
		
	
	
		
		
			
				
					|  |  | @ -165,16 +166,13 @@ class ContentTextView(context: Context, attrs: AttributeSet?) : View(context, at | 
			
		
	
		
		
			
				
					
					|  |  |  |             (textChar.end - textChar.start).toInt(), |  |  |  |             (textChar.end - textChar.start).toInt(), | 
			
		
	
		
		
			
				
					
					|  |  |  |             (lineBottom - lineTop).toInt() |  |  |  |             (lineBottom - lineTop).toInt() | 
			
		
	
		
		
			
				
					
					|  |  |  |         ) |  |  |  |         ) | 
			
		
	
		
		
			
				
					
					|  |  |  |         relativeOffset(textPage)?.let { relativeOffset -> |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |             val lineTopNow = textLine.lineTop + relativeOffset |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |             val lineBottomNow = textLine.lineBottom + relativeOffset |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |         val rectF = if (textLine.isImage) { |  |  |  |         val rectF = if (textLine.isImage) { | 
			
		
	
		
		
			
				
					
					|  |  |  |                 RectF(textChar.start, lineTopNow, textChar.end, lineBottomNow) |  |  |  |             RectF(textChar.start, lineTop, textChar.end, lineBottom) | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |         } else { |  |  |  |         } else { | 
			
		
	
		
		
			
				
					
					|  |  |  |             /*以宽度为基准保持图片的原始比例叠加,当div为负数时,允许高度比字符更高*/ |  |  |  |             /*以宽度为基准保持图片的原始比例叠加,当div为负数时,允许高度比字符更高*/ | 
			
		
	
		
		
			
				
					
					|  |  |  |             val h = (textChar.end - textChar.start) / bitmap.width * bitmap.height |  |  |  |             val h = (textChar.end - textChar.start) / bitmap.width * bitmap.height | 
			
		
	
		
		
			
				
					
					|  |  |  |                 val div = (lineBottomNow - lineTopNow - h) / 2 |  |  |  |             val div = (lineBottom - lineTop - h) / 2 | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |                 RectF(textChar.start, lineTopNow + div, textChar.end, lineBottomNow - div) |  |  |  |             RectF(textChar.start, lineTop + div, textChar.end, lineBottom - div) | 
			
				
				
			
		
	
		
		
	
		
		
	
		
		
			
				
					
					|  |  |  |         } |  |  |  |         } | 
			
		
	
		
		
			
				
					
					|  |  |  |         kotlin.runCatching { |  |  |  |         kotlin.runCatching { | 
			
		
	
		
		
			
				
					
					|  |  |  |             canvas.drawBitmap(bitmap, null, rectF, null) |  |  |  |             canvas.drawBitmap(bitmap, null, rectF, null) | 
			
		
	
	
		
		
			
				
					|  |  | @ -182,7 +180,6 @@ class ContentTextView(context: Context, attrs: AttributeSet?) : View(context, at | 
			
		
	
		
		
			
				
					
					|  |  |  |             context.toastOnUi(e.localizedMessage) |  |  |  |             context.toastOnUi(e.localizedMessage) | 
			
		
	
		
		
			
				
					
					|  |  |  |         } |  |  |  |         } | 
			
		
	
		
		
			
				
					
					|  |  |  |     } |  |  |  |     } | 
			
		
	
		
		
			
				
					
					|  |  |  |     } |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |     /** |  |  |  |     /** | 
			
		
	
		
		
			
				
					
					|  |  |  |      * 滚动事件 |  |  |  |      * 滚动事件 | 
			
		
	
	
		
		
			
				
					|  |  | @ -522,15 +519,6 @@ class ContentTextView(context: Context, attrs: AttributeSet?) : View(context, at | 
			
		
	
		
		
			
				
					
					|  |  |  |         } |  |  |  |         } | 
			
		
	
		
		
			
				
					
					|  |  |  |     } |  |  |  |     } | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |     private fun relativeOffset(textPage: TextPage): Float? { |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |         return when (textPage) { |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |             this.textPage -> relativeOffset(0) |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |             pageFactory.nextPage -> relativeOffset(1) |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |             pageFactory.nextPlusPage -> relativeOffset(2) |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |             else -> null |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |         } |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |     } |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |     fun relativePage(relativePos: Int): TextPage { |  |  |  |     fun relativePage(relativePos: Int): TextPage { | 
			
		
	
		
		
			
				
					
					|  |  |  |         return when (relativePos) { |  |  |  |         return when (relativePos) { | 
			
		
	
		
		
			
				
					
					|  |  |  |             0 -> textPage |  |  |  |             0 -> textPage | 
			
		
	
	
		
		
			
				
					|  |  | 
 |