首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計疑難解答

TextView 圖文混排行高異常:ImageSpan 高度超過文本導致換行計算錯誤

     編輯:程式設計疑難解答

問題現象

用 Html.fromHtml() 插入圖片,圖片高度大於文字行高,導致 TextView 只顯示兩行,滾動時高度計算錯誤。

解決方案

  1. 縮放圖片:在 ImageGetter 中根據文字大小縮放 Bitmap
    Drawable d = new BitmapDrawable(resources, scaledBitmap);
    d.setBounds(0, 0, textLineHeight, textLineHeight);
  2. 自定義 ReplacementSpan:繼承 ReplacementSpan 重寫 getSize() 返回固定高度,draw() 居中繪製圖片
  3. 使用富文本庫:如 RichText、SpanTextView 內部已處理行高對齊

關鍵點

確保 ImageSpan 佔用的高度與 TextView 的 lineSpacingExtra、textSize 一致,避免 Layout 重複測量導致跳動。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved