代码如下
/**
* 自定义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学习路线