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); } }