在我的OnDraw方法中,我将路径绘制到我的画布中(带有segements的圆圈)。一切都很好,现在我不知道该怎么做才能使它倾斜(围绕一个轴旋转)。
基本上,我想要实现的是谷歌地图的倾斜功能。
这是pseduo代码:
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
// I do all the drawing here
canvas.tilt(45degrees) <-----??
}
答案 0 :(得分:2)
我认为您不必在onDraw
方法中手动修改画布来创建倾斜效果。而是在整个View
上使用setRotationX()
方法。您也可以在xml中将其定义为android:rotationX="45"
。
答案 1 :(得分:0)
将Canvas.concat(Matrix)
与旋转矩阵一起使用,即:
class MyView {
private final Matrix rotate = new Matrix();
public MyView()
{
rotate.setRotate(45.0f);
}
protected void onDraw(Canvas c)
{
super.onDraw(canvas);
canvas.save(Canvas.MATRIX_SAVE_FLAG);
canvas.concat(rotate);
canvas.restore();
}
}
另请注意,根据android linter,您不应在onDraw()
内进行任何内存分配。