Closed shortybin closed 7 years ago
这两个值的含义的确是 Picture 的宽度和高度,在你的测试中,发现即便是录制内容超过这两个数值依旧会被绘制出来。估计是怀疑这两个数值到底有没有作用。
这两个数值是有作用的,简单举一个使用场景:
// 将 Picture 宽高各缩放 0.5,缩放中心为 Picture 中心位置。
canvas.save();
canvas.scale(0.5f, 0.5f, mPicture.getWidth()/2, mPicture.getHeight()/2);
canvas.drawPicture(mPicture);
canvas.restore();
在这个例子中,getWidth 和 getHeight 所获取到的就是你在 beginRecording 时设置的数值,而不是 picture 的实际绘制区域大小。假如你设置的数值是 (100, 100) 则不论你的实际绘制区域为多大,缩放中心都是 (50, 50)
在你的例子中还有一个有趣的现象,那就是为 Picture 指定绘制区域(Rect)后,Picture 仍然能够显示完全,这是因为,指定绘制区域并不没有设置遮罩,仅仅是缩放了 picture 而已,所以实际绘制出来是一个大一点或者小一点的 picture。
缩放比例 = 实际大小/你设置的大小。
(假如你设置 beginRecording(0, 0),你会发现不论如何设置 Rect 的大小,Picture 实际绘制大小都不会改变,这是因为在数学中除数不能为0,所以无法计算出缩放比例导致的)
当然了,假如你后期变换并不依赖于 picture 的宽高数值,那么这两个数据对你的影响并不大,随便是任何数值都行。
尽管如此,还是建议在实际使用的时候为它设置一个合适的宽高,这样更加符合人们的直觉,在后期变换过程中也可以避免一些不必要的问题。
讲解的很明白 在下受教了 多谢
上面width和weigth都设为0
上面width和weigth都设为100
这两个值的作用不是很明白,求指点,谢谢!!!