这里canvas.save();和canvas.restore();是两个相互匹配出现的,作用是用来保存画布的状态和取出保存的状态的。这里稍微解释一下,
he
这是有西面
protected void onDraw(Canvas canvas) {
canvas.drawColor(Color.WHITE);
Paint p = new Paint();
float y = 10;
canvas.save();
canvas.scale(5f, 5f);
p.setColor(Color.RED);
canvas.drawBitmap(mBitmap, 10, y, p);
y += mBitmap.getHeight() + 10;
canvas.restore();
canvas.drawBitmap(mBitmap2, 10, y, p);
y += mBitmap2.getHeight() + 10;
}
只有白色的图像进行了放大
有下面的代码实现
@Override
protected void onDraw(Canvas canvas) {
canvas.drawColor(Color.WHITE);
Paint p = new Paint();
float y = 10;
//canvas.save();
canvas.scale(5f, 5f);
p.setColor(Color.RED);
canvas.drawBitmap(mBitmap, 10, y, p);
y += mBitmap.getHeight() + 10;
//canvas.restore();
canvas.drawBitmap(mBitmap2, 10, y, p);
y += mBitmap2.getHeight() + 10;
}
白色和红色的图片收到了影响
本文详细介绍了在使用Canvas绘制图形时如何利用save()和restore()方法来保存和恢复画布状态,确保不同元素独立操作而不相互影响。通过实例演示了如何在画布上对特定元素进行旋转、缩放等操作,同时保持其他元素不受影响。

1395

被折叠的 条评论
为什么被折叠?



