我希望缩放一条可以绘制到Canvas
的路径。我想知道以下两个选项之间的区别是什么:
public void onDraw(Canvas canvas){
canvas.scale(factor, factor);
canvas.draw(path, paint);
}
和
public void onDraw(Canvas canvas){
// prepare the matrix here
....
path.transform(matrix);
canvas.draw(path, paint);
}
我的理解是:第一个将改变Canvas
本身而不是要绘制的对象,就像路径一样;第二个是转换对象本身。
这有什么区别?我应该在什么样的情况下使用哪个选项?在Bitmap
的基础Canvas
方面发生了什么?谢谢
答案 0 :(得分:1)
我认为这是为了使路径更大。
使用Canvas.Scale()
使画布变小,绘制到它,然后再将其缩小(我认为你错过了一步)。
Path.transform
使路径变大,然后将其绘制到画布上。
缩放方法将使路径像素化,因为它在绘制后调整大小。 变换将更好地调整大小,因为它在绘制之前调整矢量路径的大小。
如果你让路径变小......那么就没有明显的效果值得注意。除了线宽之外。