【Android Canvas drawText实现中文垂直居中】曾无好事来相访,赖尔高文一起予。这篇文章主要讲述Android Canvas drawText实现中文垂直居中相关的知识,希望能为你提供帮助。
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
=
"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进阶Android图像处理
- AndroidListView工作原理完全解析(转自 郭霖老师博客)
- android笔试题一
- ORA-12519: TNS:no appropriate service handler found 解决
- SpringBoot application.yml logback.xml,多环境配置,支持 java -jar --spring.profiles.active
- 通过制作Flappy Bird了解Native 2D中的RigidBody2D和Collider
- 通过制作Flappy Bird了解Native 2D中的Sprite,Animation
- Android带索引联系人列表
- Android-async-http 的用法