canvas.getClipBounds如何工作

时间:2013-08-16 06:44:42

标签: android android-canvas android-drawable

我想了解canvas.getClipBound方法的内部结构。 请指导我建立我的理解。

例如: 在画布上绘制并缩放时,使用clipBounds我们可以通过询问

获得滚动的x和y位置
int l = canvas.getClipBound().left;
int t = canvas.getClipBound().top;

我想知道它内部是如何运作的。

1 个答案:

答案 0 :(得分:2)

假设您的画布的宽度和高度为480x800,并且您已在其上绘制了一些内容。一旦你缩放它,android系统将计算当前画布可以为该特定缩放级别向用户显示多少区域,并且将剪切该区域。例如,一旦它被缩放,画布的实际可显示区域可以是300x500,然后剪辑区域将是相同的300x500,意味着,这个300x500被缩放并显示在480x800显示中。在此示例中,当前未显示的原始画布的其余区域(宽度和高度)可以计算为

xScroll = 480-300;

yScroll = 800-500;

canvas.getClipBound().left;给出缩放屏幕水平滚动的程度  canvas.getClipBound().top;显示了它垂直滚动的程度。

希望这会对你有所帮助。