在开发中如果我们TextView使用了wrap-content即包裹内容来定义控件的宽高时,往往我们并不能很好的掌握控件的真是宽度和高度。这里我提供了一个计算文字宽高的方法。
计算文本宽度
/**
* 获取指定文本的宽度
* @param text
* @param textSize
* @return
*/
public static float getTextWidth(String text,float textSize){
if(TextUtils.isEmpty(text)){
return 0;
}
Paint paint = new Paint();//创建一个画笔对象
paint.setTextSize(textSize);//设置画笔的文字大小
return paint.measureText(text);//利用画笔丈量指定文本的宽度
}
计算文本高度
/**获取指定文本的高度
* @param text
* @param textSize
* @return
*/
public static float getTextHeight(String text,float textSize){
Paint paint = new Paint();//创建一个画笔对象
paint.setTextSize(textSize);//设置画笔的文本大小
Paint.FontMetrics fm = paint.getFontMetrics();//获取画笔默认字体的度量衡
return fm.descent - fm.ascent;//返回文本自身的高度
//return fm.bottom - fm.top + fm.leading;//返回文本所在行的行高
}