首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从画图中获取文本BaseLine

如何从画图中获取文本BaseLine
EN

Stack Overflow用户
提问于 2019-07-26 17:21:24
回答 2查看 513关注 0票数 0

我试图在画布的中心绘制一个文本,因为canvas在BaseLine开始绘制文本,所以我不能将它放在中心。如果我能得到baseLine,那么我就能计算出中心。

我已经用paint.getFontMetrics()试过了,它给出了上升和下降,但没有baseLine。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-07-26 17:45:30

所有关于baseLine的paint.getFontMetrics()计算都会发生。所以如果我只减去(getMeasuredHeight() / 2f) - (fontMetrics.ascent / 2f),它将从中心开始绘制

票数 0
EN

Stack Overflow用户

发布于 2019-07-26 17:30:00

你有没有试过这个代码

代码语言:javascript
复制
private void drawCenter(Canvas canvas, Paint paint, String text) {
    canvas.getClipBounds(r);
    int cHeight = r.height();
    int cWidth = r.width();
    paint.setTextAlign(Paint.Align.LEFT);
    paint.getTextBounds(text, 0, text.length(), r);
    float x = cWidth / 2f - r.width() / 2f - r.left;
    float y = cHeight / 2f + r.height() / 2f - r.bottom;
    canvas.drawText(text, x, y, paint);
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57216926

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档