@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas); Paint mTextPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
// Measure a text
Rect textBounds = new Rect();
mTextPaint.getTextBounds(String.valueOf(mLetter), 0, 1, textBounds);
float textWidth = mTextPaint.measureText(String.valueOf(mLetter));
float textHeight = textBounds.height(); FontMetrics fontMetrics = mTextPaint.getFontMetrics();
// 计算文字高度
float fontHeight = fontMetrics.bottom - fontMetrics.top;
// 计算文字baseline
float textBaseY = getHeight() - (getHeight() - fontHeight) / 2
- fontMetrics.bottom; // Draw the text
canvas.drawText(String.valueOf(mLetter), getWidth() / 2f
- textWidth / 2f, textBaseY, mTextPaint);
}

Canvas drawText实现中英文居中的更多相关文章

  1. android Canvas drawText 文字居中

    1首先利用canvas获取画布的宽高, //获取屏幕的宽和高int width = canvas.getWidth();int height = canvas.getHeight(); 2获取文字的宽 ...

  2. Android Canvas drawText实现中文垂直居中

    目标: 把中文字符绘制到目标矩形的居中位置. 问题: Android的Canvas绘图,drawText里的origin是以baseline为基准的,直接以目标矩形的bottom传进drawText, ...

  3. 关于Android Canvas.drawText方法中的坐标参数的正确解释

    canvas.drawText("www.jcodecraeer.com", x, y, paint);  x和y参数是指定字符串中心的坐标吗?还是左上角的坐标?这个问题的直观印象 ...

  4. Android Canvas.drawText方法中的坐标参数的正确解释

    摘要 canvas.drawText(www.jcodecraeer.com, x, y, paint); x和y参数是指定字符串中心的坐标吗?还是左上角的坐标?这个问题的直观印象应该是左上角的坐标, ...

  5. android中画文字的换行 办法(对于遇到canvas.drawText(String s )无法实现换行问题的解决)

    在使用canvas.drawText()绘制文字的时候,发现,如果需要绘制的文字较长,需要换行,通过在文字中加上“\n"或者”\r\n"都无法实现换行,如果非要使用canvas.d ...

  6. 小程序canvas中文字设置居中锚点

    小程序中经常会遇到要生成图片的需求,图片一般会加上用户的头像和昵称之类的,头像只需要把腾讯域名添加到request和download列表中,使用wx.getImageInfo()就可以缓存到本地,成功 ...

  7. android canvas drawtext 字高

    Paint pFont = new Paint(); Rect rect = new Rect(); pFont.getTextBounds("豆", 0, 1, rect); L ...

  8. 自定义环形进度条RoundProgressBar

    一.效果图: Canvas画圆环说明: 圆环宽度不必在意,只是画笔宽度设置后达到的效果. 二.实现步骤 1.自定义View-RoundProgressBar 2.设置属性resources(decle ...

  9. 如何“任性”使用Android的drawText()

    Android的canvas上可以画很多基本形状,诸如:圆,矩形,线条等等,其中当属文字即drawText()较难理解和使用(额,这只是就个人感受),下面将慢慢介绍下如何简单使用drawText(). ...

随机推荐

  1. QT学习笔记5

    Qt标准对话框之QFileDialog //QString path=QFileDialog::getOpenFileName(this,tr("open image"),&quo ...

  2. 基于 CSS3 Media Queries 的 HTML5 应用

    先来介绍下 media,确切的说应该是 CSS media queries(CSS 媒体查询),媒体查询包含了一个媒体类型和至少一个使用如宽度.高度和颜色等媒体属性来限制样式表范围的表达式.CSS3 ...

  3. 关于WEB Service&WCF&WebApi实现身份验证之WCF篇(2)

    因前段时间工作变动(换了新工作)及工作较忙暂时中断了该系列文章,今天难得有点空闲时间,就继续总结WCF身份验证的其它方法.前面总结了三种方法(详见:关于WEB Service&WCF& ...

  4. MVC的控制器的激活过程,我们从MvcHandler开始讲,前面的事情以后再讲

    一.从MvcHandler开始(不要觉得是代码,让你看懂才是最重要的) using Microsoft.Web.Infrastructure.DynamicValidationHelper; usin ...

  5. jQuery动态设置样式List item

    前段时间,Insus.NET有修改一个功能<激活当前视图菜单高亮呈现>http://www.cnblogs.com/insus/p/5287093.html 今天Insus.NET想改用另 ...

  6. 使用KeleyiSQLHelper类进行分页查询

    本文适用于sql server单主键表或者视图进行分页查询,支持多字段排序. KeleyiSQLHelper类的最新代码请到http://hovertree.com/down/下载整个解决方案源代码查 ...

  7. jquery子元素选择器

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  8. How do I set the default schema for a user in MySQL

    http://stackoverflow.com/questions/12426320/how-do-i-set-the-default-schema-for-a-user-in-mysql   up ...

  9. django pdb

    import pdb; pdb.set_trace()   http://charlee.li/debug-djangp-with-pdb.html https://github.com/tomchr ...

  10. Eclipse功能集合

    大家好,这篇博客的目的是总结一下Eclipse这个软件中一些不为常用的功能.与大家分享.谢谢~ 1.利用one hour看了一下Eclipse的使用,用two hour写了这篇blog. 2.在现实项 ...