【android studio】Android 自定义TextView实现文本内容自动调整字体大小

时间:2021-08-04  来源:文本特效  阅读:

 

 代码如下

/**

 * 自定义TextView,文本内容自动调整字体大小以适应TextView的大小

 * @author yzp

 */

publicclassAutoFitTextViewextendsTextView {

  privatePaint mTextPaint;

  privatefloatmTextSize;

  publicAutoFitTextView(Context context) {

    super(context);

  }

  publicAutoFitTextView(Context context, AttributeSet attrs) {

    super(context, attrs);

  }

  /**

   * Re size the font so the specified text fits in the text box assuming the

   * text box is the specified width.

   *

   * @param text

   * @param textWidth

   */

  privatevoidrefitText(String text,inttextViewWidth) {

    if(text ==null|| textViewWidth <=0)

      return;

    mTextPaint =newPaint();

    mTextPaint.set(this.getPaint());

    intavailableTextViewWidth = getWidth() - getPaddingLeft() - getPaddingRight();

    float[] charsWidthArr =newfloat[text.length()];

    Rect boundsRect =newRect();

    mTextPaint.getTextBounds(text,0, text.length(), boundsRect);

    inttextWidth = boundsRect.width();

    mTextSize = getTextSize();

    while(textWidth > availableTextViewWidth) {

      mTextSize -=1;

      mTextPaint.setTextSize(mTextSize);

      textWidth = mTextPaint.getTextWidths(text, charsWidthArr);

    }

    this.setTextSize(TypedValue.COMPLEX_UNIT_PX, mTextSize);

  }

  @Override

  protectedvoidonDraw(Canvas canvas) {

    super.onDraw(canvas);

    refitText(this.getText().toString(),this.getWidth());

  }

}

 

【android studio】Android 自定义TextView实现文本内容自动调整字体大小

http://m.bbyears.com/wangyetexiao/133993.html

推荐访问:android学习路线
相关阅读 猜你喜欢
本类排行 本类最新