FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(
FrameLayout.LayoutParams.WRAP_CONTENT,
FrameLayout.LayoutParams.WRAP_CONTENT);
params.setMargins(left, top, right, bottom);
view.setLayoutParams(params);
谢谢大家:D
我正在编写一个Android应用程序,我有一个动态创建的树,在其中显示ImageView元素。然而,为了安排这些图像,我使用了填充左边来正确排列它们,动态地改变填充的计算方式,以便一切都是均匀的。但是当我这样做时,填充会覆盖左边的一些图像,即使你可以看到这个填充后面的图像,当你点击该图像时,它会评估正在使用填充的图像(最远的)左元素)。我基本上想知道是否有一种方法可以以编程方式设置某些内容来执行padding对图像所做的但不可点击的内容?边距是有意义的,但您无法在ImageViews上设置边距。
树的设置如下:
-----A-----
--B--C--D--
-E-F----G--
想象一下,每个字母都是一个ImageView,使用填充动态放置。但是如果我点击B或C,D的代码将被评估,因为它的左侧填充覆盖了B和C.对于E或F,同样适用于那些,并且将对G进行评估。我无法想出一种不同的方式放置这些ImageViews。非常感谢任何帮助。
答案 0 :(得分:5)
考虑使用layout_margin属性替换填充。这样,分隔填充视图的区域不会被视为视图的一部分,而是作为其所在布局的一部分。
所以使用
android:layout_margin="10dp"
或:
android:layout_marginLeft="10dp"
满足您的需求。