Android 自定义TextView实现文本内容自动调整字体大小
最近做通讯录小屏机联系人姓名显示--长度超过边界字体变小
/**
*自定义TextView,文本内容自动调整字体大小以适应TextView的大小
*@authoryzp
*/
publicclassAutoFitTextViewextendsTextView{
privatePaintmTextPaint;
privatefloatmTextSize;
publicAutoFitTextView(Contextcontext){
super(context);
}
publicAutoFitTextView(Contextcontext,AttributeSetattrs){
super(context,attrs);
}
/**
*Resizethefontsothespecifiedtextfitsinthetextboxassumingthe
*textboxisthespecifiedwidth.
*
*@paramtext
*@paramtextWidth
*/
privatevoidrefitText(Stringtext,inttextViewWidth){
if(text==null||textViewWidth<=0)
return;
mTextPaint=newPaint();
mTextPaint.set(this.getPaint());
intavailableTextViewWidth=getWidth()-getPaddingLeft()-getPaddingRight();
float[]charsWidthArr=newfloat[text.length()];
RectboundsRect=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(Canvascanvas){
super.onDraw(canvas);
refitText(this.getText().toString(),this.getWidth());
}
}
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持毛票票!
热门推荐
10 八一幼儿祝福语大全简短
11 公司乔迁食堂祝福语简短
12 婚礼结束聚餐祝福语简短
13 儿媳买车妈妈祝福语简短
14 毕业送礼老师祝福语简短
15 同事辞职正常祝福语简短
16 恭贺新婚文案祝福语简短
17 金店立秋祝福语简短英文
18 婆婆高寿祝福语大全简短