安卓内边距问题

6

:) 我有一个问题:我有一个视图,想要给它添加边框。我目前尝试的方法是设置视图的内边距(四周都设置)并设置背景颜色填充内边距。但是我发现好像只能同时从上和左或从下和右设置内边距,不能同时设置所有边距。例如:

view.setPadding(border,border,border,border)

这将只设置顶部和左侧的填充。为了从底部和右侧设置填充,我必须编写:

view.setPadding(-border,-border,0,0)

如果我尝试使用margin,它会移动整个块(视图+填充区域),而不仅仅是视图,因此这似乎也行不通。有没有什么方法可以在不使用包装布局的情况下完成它?谢谢!

2个回答

3
当您使用第一个示例时,会发生什么? setPadding()的四个int参数分别是左、上、右和下。因此,调用setPadding(4, 5, 6, 7)应该为左边缘提供4像素的空间,顶部为5像素,右侧为6像素,底部为7像素。当您这样做时,您得到了什么结果?您能展示一张截图吗?

当我写这个时,它只设置了顶部和左侧的填充。我无法提供截图,因为我当前使用的计算机上没有源代码,但它正确设置了顶部和左侧边框,而没有底部和右侧边框。 - asenovm
有趣。是的,在Amplify的笔记中,它是哪种类型的视图? - Kevin Coppock
它是一个相对布局,可以包含不仅仅是图片。 - asenovm
1
尝试在XML布局中添加android:clipToPadding="true",或者如果它是在代码中实例化的,则在RelativeLayout上调用setClipToPadding(true) - Kevin Coppock

2

你的视图内容是什么?如果是图像或类似物品,可能没有居中或按比例缩放。请尝试调用 setGravity(CENTER);


谢谢,我会尽快尝试。基本上视图是一个RelativeLayout,但它的内容可能会有所变化 - 图像/幻灯片等。 - asenovm
@iLate RelativeLayout 总是保持相同的大小还是会“包裹内容”?如果它不改变大小,只需将背景设置为纯色,明显的颜色,直到您调整间距为止。这样可以更容易地看到它的确切位置。 - Amplify91

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接