设置相对布局没有硬编码值android

时间:2014-05-08 05:27:43

标签: android android-layout layout

你好我的布局有问题我的布局适合所有屏幕当我在线性布局中设置它但线性布局中的问题是当我将View带到前面它会干扰其他视图现在我将所需的布局更改为相对布局其中我也带来了前面的视图,哪个工作完美,但现在问题在于相对布局是不同屏幕分辨率的硬编码值,所以我能为此做些什么,请帮助我,并提前致谢....... ..

这是我的布局代码......

<LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_weight="1"
        android:orientation="vertical"
        android:weightSum="1" >

               <LinearLayout 
             android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                 android:layout_weight=".8"
                android:background="@drawable/prdttrans">
                </LinearLayout>


               <RelativeLayout 
                    android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                 android:layout_weight=".2"

                  >
            <ImageView
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:id="@+id/animimage" 
                android:background="@drawable/ab"/>

            <ImageView
                android:id="@+id/waterleftDisplayimg"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentBottom="true"
                android:layout_alignParentRight="true"
                android:layout_marginBottom="17dp"
                android:layout_marginRight="39dp"
                android:background="@drawable/ic_launcher" />

            <ImageView
                android:id="@+id/waterrightdisplayimg"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentLeft="true"
                android:layout_alignTop="@+id/waterleftDisplayimg"
                android:layout_marginLeft="32dp"<-------------- these hardcoded values  
   cause problems 
                android:background="@drawable/ic_launcher" />

   </RelativeLayout>
            </LinearLayout>

我想在所有屏幕上设置相对布局

1 个答案:

答案 0 :(得分:2)

如果要对多个屏幕进行硬编码,可以使用dimens

在资源的values文件夹下,创建一个名为dimens.xml的xml(如果不存在),如下所示:

<?xml version="1.0" encoding="utf-8"?>
<resources>    
    <dimen name="left_margin_value">20dp</dimen>
</resources>

为不同的屏幕分辨率创建尺寸文件,并根据这些屏幕设置所需的dp值。示例屏幕:

res/values/dimens.xml as default
res/values-sw360dp/dimens.xml
res/values-sw480dp/dimens.xml
res/values-sw600dp/dimens.xml
res/values-sw720dp/dimens.xml
res/values-xlarge/dimens.xml

创建并设置这些文件后,在布局xml文件中,更改ImageView边距,如下所示:

android:layout_marginLeft="@dimen/left_margin_value"