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
- Android入門教程 | TextView簡介(寬高、文字、間距)AndroidTextView
- PHP高併發情況下防止商品庫存超賣PHP
- 香港高防伺服器高防IP在頻寬不夠充足的情況下是怎麼做到良好的防護效能的伺服器
- js/jq 獲取網頁寬高JS網頁
- 多種情況解析深複製
- 火狐是否在未經授權的情況下蒐集您的資料?
- IOS 自動化,幾種特殊情況下 UI 元素獲取的方式iOSUI
- 父元素寬度為flex-1 的情況下,如何將子元素橫向滾動Flex
- Qt 彈出的子頁面在未關閉的情況下,關閉主窗體,程式不退出的情況解決QT
- 可視區、標籤寬高的獲取
- 如何這沒有顯示器的情況下獲取樹莓派IP?樹莓派
- 最全的獲取元素寬高及位置的方法
- Flutter 中獲取螢幕以及 Widget 的寬高Flutter
- 如何呼叫api介面獲取其中的資料API
- 什麼情況下你能接受 996996
- 哪些情況下企業需要部署CRM?
- 華納雲:哪些情況下適合使用美國高防雲伺服器?伺服器
- SqlServer 高併發的情況下,如何利用鎖保證資料的穩定性SQLServer
- 你真的懂js獲取可視區寬高嗎JS
- SQLServer 2012複製訂閱在不重新初始化快照情況下新加表SQLServer
- xcodebuild -workspace 情況下,部分坑的處理XCodeUI
- 情況最簡單下的爬蟲案例爬蟲
- 什麼情況下進行效能測試
- 哪些情況下需要/不需要建立索引索引
- 什麼情況下會出現css阻塞?CSS
- 什麼情況下會出現js阻塞?JS
- JavaScript獲取瀏覽器、元素、螢幕的寬高尺寸JavaScript瀏覽器
- app直播原始碼,Vue獲取URL圖片的寬高APP原始碼Vue
- 繪製流程圖的軟體下載流程圖
- 高階圖形繪製軟體的原理猜想
- jenkins 構建 job 並獲取其狀態的實現Jenkins
- gorm使用事務併發情況下切有最大mysql連線數限制的情況下的BUG,踩坑了GoORMMySql
- Sumap網路測繪探測C&C遠控在野情況分析
- 在啟用所有PS效能模式工具的情況下,效能損耗過高,怎麼辦模式
- Go高階特性 12 | 指標詳解:在什麼情況下應該使用指標?Go指標
- AutoCAD 2024:顛覆想象,繪製美好未來 mac/win版Mac