Android .xml设计

时间:2012-03-28 20:25:16

标签: android xml

我的设计存在一个大多数.xml文件的缺陷,其中大小通常在某些屏幕上变大,而某些在较低的屏幕上变大。我使用px(像素)。

我知道这可能是一个糟糕的选择,因为新手机的像素比率会更高。例如三星Galaxy Nexus将所有文本制作成小文本。

将来使用哪种手机会更合适?

额外:

我已经使用线性布局很长一段时间但是现在我需要滚动长菜单我设计了一个RelativeLayout嵌套ScrollView ScrollView嵌套线性布局。嵌套tableLayout以更好地控制视图是否是更好的选择?

不想淹没问题屏幕,因为它看起来很难看。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/layout_root"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <ScrollView 
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

    <LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical" >

            <TextView
                android:id="@+id/tab_tv_one"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_above="@+id/auto_Action"
                android:background="#666666"
                android:text="@string/options_dialog_menu_Action"
                android:textSize="27px"
                 />

            <RadioGroup 
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:orientation="vertical">

            <RadioButton
                android:id="@+id/FirstOption"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_above="@+id/manual_Action"
                android:layout_below="@+id/tab_tv_one"
                android:text="@string/options_dialog_menu_Auto_Action"

                android:textSize="27px" />

            <RadioButton
                android:id="@+id/SecondOption"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_above="@+id/tab_tv_two"
                android:layout_below="@+id/auto_Action"
                android:text="@string/options_dialog_menu_Manual_Action"
                android:textSize="27px" 
                android:onClick="onClick"
                android:clickable="true"

                />

             <RadioButton
                android:id="@+id/ThirdOption"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_above="@+id/tab_tv_two"
                android:layout_below="@+id/manual_Action"
                android:textSize="27px" 
                android:onClick="onClick"
                android:clickable="true"

                />

            </RadioGroup>



            <TextView
                android:id="@+id/tab_tv_two"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_above="@+id/text_size"
                android:layout_below="@+id/manual_Action"
                android:background="#666666"
                android:text="@string/options_dialog_menu_Layout_Options"
                android:textSize="27px"
                 />

            <TextView
                android:id="@+id/text_size"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_above="@+id/background_clr"
                android:layout_below="@+id/tab_tv_two"
                android:text="@string/options_dialog_menu_Text_Size"
                android:textSize="27px"
                android:onClick="onClick"
                android:clickable="true"

                 />

            <TextView
                android:id="@+id/Options_clr"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_above="@+id/brightness_ctrl"
                android:layout_below="@+id/text_size"
                android:text="@string/options_dialog_menu_Color_Options"
                android:textSize="27px"
                android:onClick="onClick"
                android:clickable="true"

                 />

            <TextView
                android:id="@+id/brightness_ctrl"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_below="@+id/background_clr"
                android:text="@string/options_dialog_menu_Brightness_color"
                android:textSize="27px"
                android:onClick="onClick"
                android:clickable="true"

                 />
            <TextView
                android:id="@+id/backToBasics"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_below="@+id/brightness_ctrl"
                android:text="@string/options_dialog_menu_Back_To_Basics"
                android:textSize="27px"

                android:onClick="onClick"
                android:clickable="true"
                 />


    </LinearLayout>
  </ScrollView>
</RelativeLayout>

1 个答案:

答案 0 :(得分:1)

不要使用像素,请使用dp(aka dip aka density independent pixels)。否则,如您所述,尺寸将取决于密度,这是不好的。

它不仅仅是星系连接,ldpi手机看起来与mdpi不同,后者看起来与hdpi等不同。很少有任何理由使用px尺寸,特别是在视图尺寸方面。

关于您的额外问题,这完全取决于您希望布局的外观。没有看到代码和/或至少知道你想要发生什么(与你现在看到的相比),没有人真的能够回答这个问题。