Blame view

C5/app/src/main/java/com/sunvote/xpadapp/base/TextViewUtils.java 1.01 KB
fac86401   孙向锦   初始化C5 Vote
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
  package com.sunvote.xpadapp.base;
  
  import android.text.TextPaint;
  import android.util.TypedValue;
  import android.widget.TextView;
  
  /**
   * Created by Administrator on 2017/9/18 0018.
   */
  
  public class TextViewUtils {
  
      /**
       * Textview文字自适用大小
       * @param tv
       * @param maxWidth
       * @param text
       */
      public static void adjustTvTextSize(TextView tv, int maxWidth, String text) {
          int avaiWidth = maxWidth - tv.getPaddingLeft() - tv.getPaddingRight() - 10;
          if (avaiWidth <= 0) {
              return;
          }
          TextPaint textPaintClone = new TextPaint(tv.getPaint());
          // note that Paint text size works in px not sp
          float trySize = textPaintClone.getTextSize();
  
          while (textPaintClone.measureText(text) > avaiWidth) {
              trySize--;
              textPaintClone.setTextSize(trySize);
          }
          tv.setText(text);
          //此处相当于布局文件中的Android:gravity属性
          tv.setTextSize(TypedValue.COMPLEX_UNIT_PX, trySize);
      }
  }