android+增加画布大小,android – 如何在画布上绘制大尺寸文本?

博客围绕在Android画布上垂直绘制月份文字展开。绘制代码在hdpi屏幕效果好,但在xhdpi上像素化严重。经测试发现,结果取决于Android版本,2.x平台运行良好,4.0.3及以上版本有问题,尝试不同抗锯齿设置无效,询问解决办法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我想在画布月份的文字垂直沿着屏幕高度绘制.

绘制初始化:

this.paint = new Paint();

this.paint.setAntiAlias(true);

this.paint.setDither(true);

this.paint.setSubpixelText(true);

this.paint.setColor(color_text_dark);

this.paint.setTextAlign(Align.RIGHT);

画画:

// Set the scale to the widest month

float scale = getHeight() / this.max_month_width;

String month_string = FULL_MONTH_NAME_FORMATTER.

format(active_month_calendar.getTime());

canvas.save();

canvas.translate(getWidth(), 0);

canvas.rotate(-90);

canvas.scale(scale, scale);

canvas.drawText(month_string, 0, 0, this.paint);

canvas.restore();

结果在hdpi屏幕上看起来不错,但在xhdpi上非常难看和像素化.

我在各种设备上做了更多测试,并了解结果取决于Android版本,而不是屏幕密度和分辨率.

代码在2.x平台上运行良好,但在4.0.3上不起作用.假设,这里改变了Android绘图实现.

完整代码你可以看到here.

hdpi版本2.3.5(也测试2.2)

xhdpi版本4.2(也测试了4.1,4.0.3)

为油漆抗锯齿尝试不同的变化,亚像素文本没有效果.我该如何解决这个问题?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值