如何在Android中运行setbounds?

时间:2016-04-19 09:45:02

标签: android android-drawable

我对Android中的drawable的setbounds方法感到困惑。我知道它与drawable一起使用,它设置在drawable和它有多大的位置。简而言之,它定义了可绘制的边界矩形。但我很困惑:它是设置边框或填充还是宽度或高度?

这就是我们使用setbounds的方式

drawableInstance.setBounds(L,T,R,B);

第一种情况

因此,在上述情况下,如果我分别为L,T,R,B设置5,5,5,5,则可绘制的L,T,R,B将始终分别来自其父项?我的意思是它会像是为每一侧设置隐藏的5px边框吗?此外,如果图像不足以满足其父级的边框宽度,图像会更大吗?

第二种情况

我分别为L,T,R,B设置了5,5,100,100。令我困惑的是,它将从父母5px开始绘制到顶部,从左边开始绘制5px。那将是起点。然后图像将是100px因为我设置100为正确。所以它是正确的100px。与右下角相同。

但我测试了它。我认为两者都不如我所想。它是如何工作的,特别是与setBounds的每个参数有关?

1 个答案:

答案 0 :(得分:25)

边界值是绝对值,而不是相对值。也就是width == right - leftheight == bottom - top

您的第一个示例将Drawable的左上角位于(5, 5),但宽度和高度都为0

第二个示例的左上角也是(5, 5),宽度和高度都是95

边界不依赖于绘制Canvas的{​​{1}}的尺寸。例如,如果您将Drawable的第二个示例的边界绘制到仅Drawable View 50的{​​{1}},其左侧和顶部将插入50,但它会在右边界和右边界被切断。