首先感谢以下两篇文章
http://blog.csdn.net/eyishion/article/details/51824520
http://blog.csdn.net/maximuskiang/article/details/36618585
先试的第一篇文章中的
mPaint.
getTextBounds(
text,
0, text.length(), rect);
int width = rect.width();//文本的宽度
int height = rect.height();//文本的高度
int width = rect.width();//文本的宽度
int height = rect.height();//文本的高度
方法获得设置为bitmap的高度,但是在4.5英寸,854*480像素的oppoA11上测试,会出现转化为bitmap后的字体的高度小的问题,因此根据第二篇文章稍微修改了一下,在大部分手机上都可以进行适配,方法如下:
int width = (int) (paint.measureText(name)); Paint.FontMetrics fm = paint.getFontMetrics(); int height = (int) ((int) Math.ceil(fm.descent-fm.top) + TextUtil.dpToPx(getContext(),2.0f)); final Bitmap bmp = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888); Canvas canvas = new Canvas(bmp);canvas.drawColor(Color.parseColor("#FFEAA6A6"));canvas.drawText(name, rect.left, height - TextUtil.dpToPx(getContext(),3.5f), paint)