码迷,mamicode.com
首页 > 移动开发 > 详细

Android Canvas drawText实现中文垂直居中

时间:2015-07-24 10:44:36      阅读:143      评论:0      收藏:0      [点我收藏+]

标签:canvas drawtext

public void onDraw (Canvas canvas) {
    Rect targetRect = new Rect(50501000200);
    Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG); 
    paint.setStrokeWidth(3); 
    paint.setTextSize(80);
    String testString = "Text:中文asdfghjkl";
    paint.setColor(Color.CYAN); 
    canvas.drawRect(targetRect, paint);
    paint.setColor(Color.RED);
    FontMetricsInt fontMetrics = paint.getFontMetricsInt();
    int baseline = targetRect.top + (targetRect.bottom - targetRect.top - fontMetrics.bottom + fontMetrics.top) / 2 - fontMetrics.top;
    // 下面这行是实现水平居中,drawText对应改为传入targetRect.centerX() 
    paint.setTextAlign(Paint.Align.CENTER);  
    canvas.drawText(testString, targetRect.centerX(), baseline, paint);  
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

Android Canvas drawText实现中文垂直居中

标签:canvas drawtext

原文地址:http://blog.csdn.net/sweiqin/article/details/47036413

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!