【问题标题】:set relative Layout without hard Coded value android设置相对布局没有硬编码值android
【发布时间】:2014-05-08 13:42:11
【问题描述】:

你好,我在布局中遇到问题,当我在线性布局中设置布局时,我的布局适合所有屏幕,但线性布局中的问题是,当我将 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>

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

【问题讨论】:

  • 你能张贴图片你的布局是什么样的吗?
  • 抱歉,我没听懂你到底想说什么。
  • Harish 对不起,我的声誉很低......
  • Rashid 我想在相对布局中为所有屏幕分辨率设置相对布局

标签: android android-layout layout


【解决方案1】:

如果你想为多个屏幕硬编码,你可以使用dimens

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

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

为不同的屏幕分辨率创建dimens文件,并根据这些屏幕设置您想要的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"

【讨论】:

  • 当然可以。您将为不同的屏幕设置不同的 dp 值,例如 20dp、40dp、80dp 等等,并且在具有这些屏幕尺寸的设备中,您将看到该值。您可以在此处查看有关支持屏幕尺寸的更多帮助:developer.android.com/guide/practices/screens_support.html
  • 好的,如果您的方法对我有用,我会尽力而为,我会接受您的回答并感谢您的合理回答
  • 好吧,我会创建不同的布局文件hmmm
  • 不,不是不同的布局文件。这也是一个选项,但我建议创建不同的维度文件,并将此维度值设置为您的单一布局。
  • 先生,您的方法很有创意,但我没有告诉您我将如何在单一布局中设置不同尺寸的文件............你能简单解释一下............ .
猜你喜欢
  • 2018-06-08
  • 2013-10-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多