Android固定宽度文字自适应大小

  1. //固定宽度的情况下,自适应文本字体大小  
  2.     public static float adjustTvTextSize(TextView tv, int maxWidth, String text) {  
  3.         int avaiWidth = maxWidth - tv.getPaddingLeft() - tv.getPaddingRight() - 10;  
  4.   
  5.         if (avaiWidth <= 0 || StringUtils.isEmpty(text)) {  
  6.             return tv.getPaint().getTextSize();  
  7.         }  
  8.   
  9.         TextPaint textPaintClone = new TextPaint(tv.getPaint());  
  10.         // note that Paint text size works in px not sp  
  11.         float trySize = textPaintClone.getTextSize();  
  12.   
  13.         while (textPaintClone.measureText(text) > avaiWidth) {  
  14.             trySize--;  
  15.             textPaintClone.setTextSize(trySize);  
  16.         }  
  17.   
  18.         tv.setTextSize(TypedValue.COMPLEX_UNIT_PX, trySize);  
  19.         return trySize;  
  20.     } 

猜你喜欢

转载自blog.csdn.net/qq_29443203/article/details/78960691