Android:绘制字符

 

Android:绘制字符

ascent,top是负值,descent,bottom是正值

Android:绘制字符

黄色矩形代表要绘制的字符,图中的黄线代表baseline。

canvas.drawText("www.cnblogs.com", x, y, paint);  x和y参数是指定字符串中心的坐标吗?还是左上角的坐标?这个问题的直观印象应该是左上角的坐标,但是安卓的处理有点另类,我都怀疑安卓的设计者是不是 脑壳有问题了。
x默认是‘www.jcodecraeer.com’这个字符串的左边在屏幕的位置,如果设置了paint.setTextAlign(Paint.Align.CENTER);那就是字符的中心,y是指定这个字符baseline在屏幕上的位置。

怎样将字符(黄色区域)在矩形框(图中蓝色矩形)中居中显示呢?

Android:绘制字符
 1 Paint numPaint = new Paint();
 2 numPaint.setColor(Color.BLACK);
 3 numPaint.setStyle(Paint.Style.STROKE);
 4 numPaint.setTextSize(height*0.75f);
 5 numPaint.setTextAlign(Paint.Align.CENTER);
 6         
 7 FontMetrics fM = numPaint.getFontMetrics();
 8 float x = width / 2;
 9 float y = height / 2 - (fM.descent + fM.ascent)/2;
10         
11 canvas.drawText("www.cnblogs.com",  x,  y, numPaint);
Android:绘制字符

 

Android:绘制字符,布布扣,bubuko.com

Android:绘制字符

上一篇:Unity3d与android通信


下一篇:用微信 远程遥控 服务器