前言:最近遇到了一个小需求,要求TextView上的内容始终保持一行显示,但是没有对字体大小做限制。于是就想到了自定义一个textview试试。
思路:重写textview的ondraw方法,获取行数和当前字体大小,判断行数是否大于1,如果行数大于1,缩小字体。
代码:
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
int line=getLineCount();
float textsize=getTextSize();
if(line>1){
textsize--;
setTextSize(TypedValue.COMPLEX_UNIT_PX,textsize);
//
}
}
思路比较简单,不过可以初步实现效果