我读了这个画布概述:
Canvas类拥有" draw"调用。画一些东西,你需要4 基本组件:一个用于保存像素的位图,一个用于托管的Canvas 绘制调用(写入位图),绘图基元(例如Rect, 路径,文本,位图)和绘画(描述颜色和样式 为了绘图)。
任何人都可以更清楚地解释画布吗?
我对画布和矩阵之间的关系感到困惑。画布是否从矩阵中获取变换? 我想知道下面的功能是否影响画布?
canvas.drawBitmap(bitmap, matrix, paint);
换句话说,画布矩阵是否与位图矩阵不同?
我问过这个,因为当我使用canvas.drawBitmap
然后使用canvas.concat()
然后绘制任何对象时,此对象在画布上进行相同的转换,所以我认为画布和位图有相同的矩阵!!
答案 0 :(得分:5)
他们是不同的。当使用画布绘制提供矩阵的位图时,在内部,提供的矩阵将连接到当前的画布矩阵。
换句话说,调用canvas.drawBitmap(rectBitmap, matrix, paint);
具有相同的效果:
canvas.save();
canvas.concat(matrix);
canvas.drawBitmap(rectBitmap, 0, 0, paint);
canvas.restore();
这解释了为什么你的对象正在进行相同的转换,因为你正在调用canvas.concat(matrix);
并在绘制对象之后。