如何在扩展TextView时强制画布仅使用区域的一部分来绘制文本

时间:2012-05-30 21:35:24

标签: android android-canvas

我正在创建一个扩展TextView的自定义视图。我需要的是左手边的几个标签和TextView右侧的另一个检查器。

因此,我可以绘制这些标签,然后保存画布并将其正确翻译,以便可以在位图旁边绘制文本。这就是我这样做的方式。

canvas.drawBitmap(bitmap1, 0, top, paint);
canvas.drawBitmap(bitmap2, bitmap1_width, top, paint);

canvas.save();
canvas.translate(bitmap1_width + bitmap2_width, 0);

这里我想调用super.onDraw,但要求它使用宽度,以便减去两个位图和检查器的宽度。

然后我可以打电话给我

canvas.drawBitmap(checker, checkerLeft, top, null);

所以在翻译画布之后,我怎么能告诉super.onDraw中的画布只使用测量的宽度?请随意投入任何替代方案。我确实想使用画布,因为我的要求比这个例子稍微复杂一点。

1 个答案:

答案 0 :(得分:0)

好的,我是在调用super.onDraw()之前使用canvas.scale(sx,sy)更改比例因子的。

这是以我想要的方式显示文本。如果有更好的答案,请发布。

canvas.save();
canvas.translate(margin, 0);
canvas.scale(scaleX, 1f);
super.onDraw(canvas);
canvas.restore();