Android中計算textView長度問題

Android中計算textView長度問題

今天有一個需求,需要TextView顯示兩行的信息,但是右下角區域需要空出來,要來顯示一張小圖片,要實現的效果如圖所示。

這裏遇到的問題是計算TextView的可顯示長度和文本在畫布中的長度。

1.TextView的寬度由屏幕總寬度- 額外寬度 得到。然後乘以2得到TextView可以顯示的內容的寬度。

2.使用工具方法TextUtils.ellipsize方法,將1中計算的長度傳入,得到TextView中可以顯示的文本的內容。

3.將2中得到的文本set到TextView中。

簡單的代碼如下:

  1. private void measureTextWidth(TextView textView,String txt){ 
  2.         if(textLength == 0){ 
  3.             float textViewWidth = Variable.availableWidth - (40+50+15+11)*Variable.dip; 
  4.             textLength = textViewWidth * 2 - 5*11 * Variable.dip; 
  5.         } 
  6.         Paint paint  = textView.getPaint(); 
  7.         paint.setTextSize(textView.getTextSize()); 
  8.         String temp = (String) TextUtils.ellipsize(txt, (TextPaint) paint, textLength , TextUtils.TruncateAt.END); 
  9.         textView.setText(temp); 
  10.          
  11.     } 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章