每个视图都有 getPaddingTop/Bottom/Left/Right() 方法,这些方法将为您提供每个填充的值。
当您使用画布进行绘画时,您需要确保始终在以下限制内进行绘画:
minX = getPaddingLeft()
maxX = getWidth() - getPaddingLeft() - getPaddingRight()
minY = getPaddingTop()
maxY = getHeight() - getPaddingTop() - getPaddingBottom()
Run Code Online (Sandbox Code Playgroud)
编辑:
如果您想限制画布上可以绘制的区域,请尝试在画布上使用以下调用:
canvas.clipRect(minX, minY, maxX, maxY, Region.Op.REPLACE);
Run Code Online (Sandbox Code Playgroud)
超出这些限制的任何内容都将被忽略。
请记住,这将很好地工作,直到您开始在画布上执行转换(例如翻译)。一旦你开始这样做,事情就会开始变得有点奇怪,你可能需要在运行时改变clipRect。