Android语言基础教程(166)Android图形图像处理技术绘制2D图像之绘制文本:Canvas文字绘制魔法:让你的Android应用“声”动有趣

一、Canvas与Paint:绘图世界的画笔与画布

在Android的绘图世界里,Canvas(画布)Paint(画笔) 就像画家的画布和画笔一样,是绘制图形和文字的基础工具。

可以把Canvas想象成一块真实的画布,它提供了各种绘制方法:画直线、画矩形、画圆形,当然还有我们重点要讲的——画文字。而Paint则像是我们手中的画笔,决定了绘制内容的颜色、粗细、字体和样式等属性。

初始化画布和画笔很简单:

// 创建一个Bitmap作为绘图的载体
Bitmap bitmap = Bitmap.createBitmap(800, 600, Bitmap.Config.ARGB_8888);
// 创建Canvas并关联Bitmap
Canvas canvas = new Canvas(bitmap);
// 创建画笔
Paint paint = new Paint();
// 设置画笔颜色为黑色
paint.setColor(Color.BLACK);
// 设置文字大小
paint.setTextSize(30);

这里我们创建了一个800x600像素的Bitmap,然后将其与Canvas关联,这样所有在Canvas上的绘制操作都会体现在这个Bitmap上。Paint对象则用来控制绘制文本的样式和颜色。

二、绘制第一行文字:从drawText开始

掌握了基础的工具准备后,让我们来绘制第一行文字。Canvas类提供了drawText方法,这是最基本的文本绘制方法。

@Override
protected void onDraw(Canvas canvas) {
    super.onDraw(canvas);
    
    Paint paint = new Paint();
    paint.setColor(Color.RED);
    paint.setTextSize(30);
    
    canvas.drawText("Hello, Android!", 100, 50, paint);
}

这段代码将在画布的位置(100, 50)处绘制红色的"Hello, Android!"文字,文字大小为30像素。

但当你运行这段代码时,可能会发现文字的位置并不完全如你预期。这是因为drawText方法中的x和y参数并不是指文字的左上角,而是基线的起始位置

三、理解文字测量的奥秘:基线、上下边界与精准定位

3.1 为什么文字定位这么难?

在Android中绘制文本时,你会遇到一个独特的概念——基线(Baseline)。这是文字绘制的基础线,大多数字母都"坐"在这条线上。

想象一下写英语字母的时候,有些字母如"g"、"p"、"q"会有向下的部分(降部),而有些字母如"b"、"d"、"f"则会有向上的部分(升部)。这就是为什么简单的从左上角定位不够准确的原因。

文字绘制时隐含了五条关键的线:

  • Top线
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

值引力

持续创作,多谢支持!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值