是否有可能在Android中扩展Canvas?

时间:2012-03-09 23:29:01

标签: android canvas rendering custom-view

我有一个旋转的TextView类,其Canvas I在onDraw方法中旋转:

@Override
protected void onDraw(final Canvas canvas) {
    canvas.save();
    canvas.rotate(-90);
    canvas.translate(-getHeight(), 0);
    super.onDraw(canvas);
    canvas.restore();
}

正在正确定位和旋转TextView,但文本似乎被剪掉了:

rotated text view with clipped off text

如何正确展开Canvas以使TextView不会删除文字?

注意高亮区域是在canvas之前绘制super.onDraw(canvas)剪辑边界的结果,所以我知道剪辑区域是正确的。

1 个答案:

答案 0 :(得分:0)

当然文字被剪掉了! 如果你旋转画布,你只需在View内旋转图形,而不是Canvas所依赖的边界,但它们是由{{1}定义的。 })没有旋转。
因此,您必须旋转整个View,就像下面的代码一样:

View