0

我正在创建一个扩展 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 中的画布只使用测量的宽度呢?请随时提出任何替代方案。我确实想使用画布,因为我的要求比这个例子复杂一点。

4

1 回答 1

0

好的,我通过在调用 super.onDraw() 之前使用 canvas.scale(sx, sy) 更改比例因子来做到这一点。

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

canvas.save();
canvas.translate(margin, 0);
canvas.scale(scaleX, 1f);
super.onDraw(canvas);
canvas.restore();
于 2012-05-30T22:47:41.847 回答