Android中不同屏幕密度的单选按钮之间的MarginTop

时间:2014-02-20 12:10:08

标签: android-layout

我试图为调查问题制作一个布局,它在我的设备上工作正常,但单选按钮文本之间的边距会在更好的屏幕分辨率设备上降低。

我尝试过创建不同的DIMENS但是我不确定如何根据不同的尺寸缩放边距。

请建议我需要创建的屏幕尺寸值-swXXX文件夹以及我定义的DIMEN的缩放系数。

由于

enter code here
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >

<TextView
    android:id="@+id/tv_1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="10dp"
    android:text="How often do you use it?"
    android:textSize="15sp" />

<RadioGroup
    android:id="@+id/rg_1"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_alignLeft="@+id/tv_1"
    android:layout_below="@+id/tv_1" >

    <RadioButton
        android:id="@+id/rb_once"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="5dp"
        android:layout_marginTop="15dp"
        android:button="@drawable/radio_btn"
        android:checked="true"
        android:text="Once" />

    <RadioButton
        android:id="@+id/rb_daily"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/rb_once"
        android:layout_marginLeft="5dp"
        android:layout_marginTop="5dp"
        android:button="@drawable/radio_btn"
        android:text="Daily" />

    <RadioButton
        android:id="@+id/rb_weekly"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/rb_daily"
        android:layout_marginLeft="5dp"
        android:layout_marginTop="5dp"
        android:button="@drawable/radio_btn"
        android:text="Weekly" />

    <RadioButton
        android:id="@+id/rb_monthly"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/rb_weekly"
        android:layout_marginLeft="5dp"
        android:layout_marginTop="5dp"
        android:button="@drawable/radio_btn"
        android:text="Monthly" />
</RadioGroup>

<ImageView
    android:id="@+id/fb_share"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_centerHorizontal="true"
    android:layout_margin="10dp"
    android:src="@drawable/facebook_share" />

<ImageView
    android:id="@+id/history"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_alignTop="@+id/fb_share"
    android:layout_marginLeft="10dp"
    android:src="@drawable/history" />

<ImageView
    android:id="@+id/info"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentRight="true"
    android:layout_alignTop="@+id/fb_share"
    android:layout_marginRight="10dp"
    android:src="@drawable/info" />



<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_above="@+id/fb_share"
    android:layout_below="@+id/rg_1"
    android:layout_centerHorizontal="true" >

    <Button
        android:id="@+id/send"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_centerVertical="true"
        android:background="@drawable/red_btn"
        android:fontFamily="Roboto-Italic"
        android:text="SAVE"
        android:textColor="#ffffff" />
</RelativeLayout>



</RelativeLayout>

1 个答案:

答案 0 :(得分:0)

您需要为目标设备创建值-swXXXX文件夹。即如果您的目标是最小宽度为600的平板电脑,那么您需要创建值-sw600等。

在布局文件中,更改RadioButton的声明如下:

<RadioButton
        android:id="@+id/rb_once"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="@dimen/left_margin"
        android:layout_marginTop="@dimen/top_margin"
        android:button="@drawable/radio_btn"
        android:checked="true"
        android:text="Once" />

并在值-swXXXX下维护特定于每个目标维度的dimen.xml,维度键具有相同的名称,但值对应于各自的维度。例如:

 values/        
 <dimen name="left_margin">5dp</dimen>
 <dimen name="left_margin">10dp</dimen>

 values-sw600/      
 <dimen name="left_margin">20dp</dimen>
 <dimen name="left_margin">40dp</dimen>