Android 中可绘制对象的设置边界如何工作?
How setbounds of drawable works in Android?
我对 Android 中 drawable 的 setbounds 方法感到困惑。我知道它与 drawable 一起使用,它设置了 drawable 的位置和大小。简而言之,它定义了可绘制对象的边界矩形。但我很困惑:它是否设置了边框或填充或其宽度或高度?
这就是我们使用 setbounds 的方式
drawableInstance.setBounds(L,T,R,B);
第一个场景
所以在上面的例子中,如果我分别为 L、T、R、B 设置 5、5、5、5,drawable 的 L、T、R、B 将始终分别来自其父级?我的意思是它会像在每边都设置隐藏的 5px 边框吗?此外,如果图像不够大以符合其父级的边框宽度,图像会更大吗?
第二种情况
我分别为L,T,R,B设置了5,5,100,100。我感到困惑的是,它将开始从远离父级 5px 到顶部和 5px 到左侧绘制。那将是起点。然后图像将是 100px,因为我将 100 设置为 right。所以它向右移动 100px。下右同。
但是我测试过了。我认为两者都不像我想的那样。它是如何工作的,尤其是与 setBounds 的每个参数相关的?
界限值是绝对的,不是相对的。即width == right - left
,height == bottom - top
.
您的第一个示例 Drawable
的左上角位于 (5, 5)
,但宽度和高度均为 0
。
第二个例子的左上角也是(5, 5)
,宽度和高度都是95
。
边界不依赖于绘制 Drawable
的 Canvas
的尺寸。例如,如果你用第二个例子的边界绘制一个 Drawable
到一个只有 50
比 50
的 View
上,它的左侧和顶部将插入5
,但会在右边框和下边框被截断。
我对 Android 中 drawable 的 setbounds 方法感到困惑。我知道它与 drawable 一起使用,它设置了 drawable 的位置和大小。简而言之,它定义了可绘制对象的边界矩形。但我很困惑:它是否设置了边框或填充或其宽度或高度?
这就是我们使用 setbounds 的方式
drawableInstance.setBounds(L,T,R,B);
第一个场景
所以在上面的例子中,如果我分别为 L、T、R、B 设置 5、5、5、5,drawable 的 L、T、R、B 将始终分别来自其父级?我的意思是它会像在每边都设置隐藏的 5px 边框吗?此外,如果图像不够大以符合其父级的边框宽度,图像会更大吗?
第二种情况
我分别为L,T,R,B设置了5,5,100,100。我感到困惑的是,它将开始从远离父级 5px 到顶部和 5px 到左侧绘制。那将是起点。然后图像将是 100px,因为我将 100 设置为 right。所以它向右移动 100px。下右同。
但是我测试过了。我认为两者都不像我想的那样。它是如何工作的,尤其是与 setBounds 的每个参数相关的?
界限值是绝对的,不是相对的。即width == right - left
,height == bottom - top
.
您的第一个示例 Drawable
的左上角位于 (5, 5)
,但宽度和高度均为 0
。
第二个例子的左上角也是(5, 5)
,宽度和高度都是95
。
边界不依赖于绘制 Drawable
的 Canvas
的尺寸。例如,如果你用第二个例子的边界绘制一个 Drawable
到一个只有 50
比 50
的 View
上,它的左侧和顶部将插入5
,但会在右边框和下边框被截断。