TextViewUtils.java 1.01 KB
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);
    }
}