Android Canvas drawText实现中文垂直居中

http://blog.csdn.net/hursing/article/details/18703599

@Override  
public void onDraw (Canvas canvas) {  
    Rect targetRect = new Rect(50, 50, 1000, 200);  
    Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG);  
    paint.setStrokeWidth(3);  
    paint.setTextSize(80);  
    String testString = "测试:ijkJQKA:1234";  
    paint.setColor(Color.CYAN);  
    canvas.drawRect(targetRect, paint);  
    paint.setColor(Color.RED);  
    FontMetricsInt fontMetrics = paint.getFontMetricsInt();  
    int baseline = (targetRect.bottom + targetRect.top - fontMetrics.bottom - fontMetrics.top) / 2;  
    // 下面这行是实现水平居中,drawText对应改为传入targetRect.centerX()  
    paint.setTextAlign(Paint.Align.CENTER);  
    canvas.drawText(testString, targetRect.centerX(), baseline, paint);  
}  
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容