绘制文本的时候,通常我们需要计算文本的大小来进行布局。而需要精确计算文本大小时候,需要用Paint的api来获取文本的高度大小,通常的做法是:
String text = "xxx"; Paint pain = new Paint(); pain.setAntiAlias(true); float textSize = 24f; pain.setTextSize(textSize); Rect rect = new Rect(); pain.getTextBounds(text, 0, text.length(), rect); int with = rect.width();//文本的宽度 int height = rect.height();//文本的高度。
但是,有时这样计算是不完全精确的。最终方案其实是:
String text = "xxx"; Paint pain = new Paint(); pain.setAntiAlias(true); float textSize = 24f; pain.setTextSize(textSize); Rect rect = new Rect(); pain.getTextBounds(text, 0, text.length(), rect); int with = rect.left+rect.right; int height = (int) textSize;//一个字体的textSize其实就是字体的高度大小