我可能正在尝试做一些不可能的事情。我正在编写一个使用遥控器图片作为背景的应用程序,然后我使用相对布局和边距将按钮放在背景顶部以正确定位按钮。我以为我能够在不同的布局文件中指定不同的边距,但它只会占用主布局文件的边距(/ layout中的边距)。我有两个xxhdpi和xhdpi的布局,并且正在拾取正确的图形,但我不能在我的生活中弄清楚如何根据屏幕大小移动它们不同的数量。我可以得到一个屏幕尺寸看起来很好,但是其他的都搞砸了,无论我放在相应的xml文件中。甚至可以这样做吗?
...谢谢
答案 0 :(得分:1)
您可以在运行时将相对布局放置在视图的任何位置。以下是可能对您有帮助的示例代码。
RelativeLayout DispView = new RelativeLayout(this);
RelativeLayout.LayoutParams DispViewLayoutParams = new RelativeLayout.LayoutParams(w,h);
DispViewLayoutParams.addRule(RelativeLayout.RIGHT_OF, someview.getId());
DispViewLayoutParams.addRule(RelativeLayout.BELOW, someview2.getId());
DispViewLayoutParams.setMargins(x,y,0,0);
Mainview.addView(DispView , DispViewLayoutParams );
答案 1 :(得分:0)
您必须在各种值文件夹(值,值-ldpi-v6,values-mdpi-v6等)下创建尺寸文件以指定不同的边距,系统将根据屏幕分辨率自动选择相关值。 / p>
例如
<?xml version="1.0" encoding="utf-8"?>
<resources>
<dimen name="call_log_margin">4dp</dimen>
<dimen name="no_call_log_margin_left">10dp</dimen>
</resources>
使用这些值&#34; call_log_margin&#34;和&#34; no_call_log_margin_left&#34;在你的布局中。这些将在不同的dimens.xml中具有不同的值