美文网首页
根据宽度自动调节大小的textview

根据宽度自动调节大小的textview

作者: 王纪山 | 来源:发表于2017-03-10 09:35 被阅读51次

    public classAutoFitTextViewextendsTextView {

    privatePaintmTextPaint;

    private floatmTextSize;

    publicAutoFitTextView(Context context) {

    super(context);

    }

    publicAutoFitTextView(Context context,AttributeSet attrs) {

    super(context,attrs);

    }

    @Override

    protected voidonDraw(Canvas canvas) {

    super.onDraw(canvas);

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

    }

    private voidrefitText(String text, inttextViewWidth) {

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

    return;

    mTextPaint=newPaint();

    mTextPaint.set(this.getPaint());

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

    float[] charsWidthArr =new float[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);

    }

    }

    相关文章

      网友评论

          本文标题:根据宽度自动调节大小的textview

          本文链接:https://www.haomeiwen.com/subject/tvebgttx.html