TextView未繪製情況下獲取其寬高
/**
* 注:StaticLayout是android中處理文字換行的一個類,TextView原始碼中也是通過這個類實現換行的,使用這個類可以
* 在不進行TextView繪製的前提下得到TextView的寬高,這裡我們只需要獲取到高度即可,這個高度當然也可以通過post
* 在run中獲取,但是這樣做會有一個問題,介面是先繪製顯示然後再計算高度根據我們的邏輯來收縮TextView的高度,在列表中
* 會出現閃爍的問題。使用這個類一定要注意構造方法中引數的傳遞,保證引數和佈局中textView設定的一致,否則會有誤差
* 這個問題和獲取三行高度的要求是一樣的
*
* @param textView
* @param content
* @param width
* @return
*/
public static int getTotalLineHeight(TextView textView, String content, int width) {
if (TextUtils.isEmpty(content)) return 0;
TextPaint textPaint = textView.getPaint();
/**
* width:表示textView的寬度,和佈局保持一致,達到這個寬度,StaticLayout會對文字進行換行處理
* 1 :是行高
* UIUtil.dip2Px(CONTENT_LINE_SPACING) :是行間距
*/
StaticLayout staticLayout = new StaticLayout(content, textPaint, width, Layout.Alignment.ALIGN_NORMAL,
1, UIUtil.dip2Px(CONTENT_LINE_SPACING), true);
return staticLayout.getHeight();
}
相關文章
- JS獲取元素寬高的兩種情況JS
- [css佈局1]不知寬高情況下,水平垂直居中的幾種方式CSS
- 退出重程式序,TextView不可見(不顯示)問題(極少情況下遇到)TextView
- Android入門教程 | TextView簡介(寬高、文字、間距)AndroidTextView
- PHP高併發情況下防止商品庫存超賣PHP
- ORACLE不使用工具的情況下獲取物件DDLOracle物件
- 香港高防伺服器高防IP在頻寬不夠充足的情況下是怎麼做到良好的防護效能的伺服器
- 高併發高負載情況下常見的3種效能問題負載
- 在pos:a元素不設定寬度的情況下,他的最大寬度是受父元素的寬度所限制的。
- 多種情況解析深複製
- 高併發情況下 如何線上加核心表的主鍵?
- js/jq 獲取網頁寬高JS網頁
- 火狐是否在未經授權的情況下蒐集您的資料?
- js獲取網頁螢幕寬高JS網頁
- 華納雲:哪些情況下適合使用美國高防雲伺服器?伺服器
- 在Load average 高的情況下如何鑑別系統瓶頸。
- VC 各種情況下的視窗控制程式碼的獲取
- 如何獲取其他app的資源APP
- 如何這沒有顯示器的情況下獲取樹莓派IP?樹莓派
- 最全的獲取元素寬高及位置的方法
- Android 獲得View寬高的幾種方式AndroidView
- Oracle什麼情況下需要rebuild indexOracleRebuildIndex
- 在高併發、高負載的情況下,如何給表新增欄位並設定DEFAULT值?負載
- SqlServer 高併發的情況下,如何利用鎖保證資料的穩定性SQLServer
- jQuery下獲取瀏覽器、可視範圍及其他的各種寬高jQuery瀏覽器
- 如何呼叫api介面獲取其中的資料API
- [Android]獲取其他應用的logcatAndroidGC
- Flutter 中獲取螢幕以及 Widget 的寬高Flutter
- 你真的懂js獲取可視區寬高嗎JS
- JS 獲取瀏覽器和螢幕寬高資訊JS瀏覽器
- 測試在cursor_sharing為force情況下執行計劃的共享情況
- 情況最簡單下的爬蟲案例爬蟲
- 在什麼情況下用index unique scansIndex
- 高階圖形繪製軟體的原理猜想
- 軟體包無法下載情況下安裝nfsNFS
- 可以看一下引數情況,分析一下
- Load高,CPUidle很高,這情況太詭異了UI
- 高寫入負載情況cassandra當機故障解決負載