2014-07-15 23 views
-1

我可能会尝试做一些不可能的事情。我正在编写使用遥控器图片作为背景的应用程序,然后使用相对布局和边距将按钮放置在背景顶部,以正确定位按钮。我认为我可以在不同的布局文件中指定不同的边距,但它只会从主布局文件(在/布局中)占用边距。我有两个xxhdpi和xhdpi的布局,并且正在拾取适当的图形,但是我不能根据屏幕尺寸来决定如何移动它们。我可以得到一个屏幕大小看起来很好,但其他的都搞砸了,不管我放在各自的xml文件中。这甚至有可能吗?在android上使用相对布局布局

感谢....

+0

如果你尝试用预先存在的布局和视图要做到这一点,你最好使用带有充满'Button's水平'LinearLayout's排掉,加权'Button's'的宽度和LinearLayout的高度。但是,如果你继承了'View'并自己处理绘图和点击事件,我会认为你会得到更一致的结果。 –

回答

0

你必须创建在不同的文件夹中的值(值,值,LDPI-V6,价值观MDPI-V6等)来指定不同的利润率,系统将自动挑选梦诗文件基于屏幕分辨率的相关值。

例如

<?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> 

使用这些值“call_log_margin”,并在你的布局“no_call_log_margin_left”。这些将在不同dimens.xml有不同的价值观

+0

这是缺少的成分。谢谢,现在所有的事情似乎都是正确的。 – cpeddie

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);