这是我的代码。
我显然要将矩阵设为标识,因此无论使用concat
还是setMatrix
,结果都必须相同。
这是我的代码:
@Override protected void onDraw(Canvas canvas) {
matrix.reset();
Log.d("matrix1 : " + canvas.getMatrix());
canvas.concat(matrix);
Log.d("matrix2 : " + canvas.getMatrix());
if (backgroundBitmap != null) {
canvas.drawBitmap(backgroundBitmap, 0, 0, null);
}
if(bitmap != null) {
canvas.drawBitmap(bitmap, 0, 0, bitmapPaint);
canvas.drawPath(path, drawPathPaint);
}
if (drawGuide && touchMove) {
canvas.drawLine(0, y, getWidth(), y, guidePaint);
canvas.drawLine(x, 0, x, getHeight(), guidePaint);
}
}
When I use setMatrix(I expect that it translate half height):
最奇怪的是两个案例的toString结果相同。
06-02 17:46:26.502 5712-5712/kr.iplab.doodlr.debug D/DOODLR: CanvasView.onDraw() --- matrix1 : Matrix{[1.0, 0.0, 0.0][0.0, 1.0, 0.0][0.0, 0.0, 1.0]}
06-02 17:46:26.502 5712-5712/kr.iplab.doodlr.debug D/DOODLR: CanvasView.onDraw() --- matrix2 : Matrix{[1.0, 0.0, 0.0][0.0, 1.0, 0.0][0.0, 0.0, 1.0]}
我可以通过使用concat使我的程序运行良好,但我对此非常好奇。发生了什么事?