在ImageView上设置负边距会移动ImageView但不会移动Image

时间:2012-04-20 12:28:02

标签: android layout imageview

我需要移动一个ImageView,它是LinearLayout的直接子节点,向左移动一点。

会发生什么:视图被移动(可以看到“边界框”被移动,使用android布局管理器)但是drawable保持在同一个地方。

如果我将边距设置得足够低,也会在右侧切割可绘制的。

enter image description here

这是为什么?有什么建议吗?

  • 澄清:我必须将图像向左移动。这意味着包含布局边界的一点点。

3 个答案:

答案 0 :(得分:4)

似乎元素在超出父级边界时总是被剪裁(也是使用clipChildren = false)。

解决方案是为要移动的项目之外的所有内容创建额外的容器布局。然后将容器布局向相反方向移动。

例如,要转移-10dip:

<Original container ...>
    <Item to be shifted/>
    <New container with margin 10dip>
         <Previous content of Original container ... />
    </New container with margin 10dip>
</Original container>

答案 1 :(得分:3)

如果您的容器有足够的填充,您可以将 clipToPadding 设置为 false 并使用负边距!

答案 2 :(得分:1)

为什么使用负保证金?在ImageView的另一侧使用正偏移到想要移动图像的方向,即如果要将图像向左移动,请在右侧使用更多的正边距。