Android XML适用于所有屏幕尺寸

时间:2013-09-05 15:40:05

标签: size screen

我目前正在开发一个Android应用程序,但我遇到了问题。

我知道,使您的应用程序适应大多数设备最常见的事情是创建名为“layout-small”,“layout-normal”等的不同文件夹,以便处理此问题。

然而,这并不能解决所有问题:三星S2和三星S3都被认为是“正常”的屏幕尺寸,但是给定的结果是非常不同的,即使我也使用“dp”设置高度和我的大多数视图。

如何使我的xml适合每个设备?我不介意为每个不同的设备使用相同的xml文件,但我该怎么做?

以下是在S3上渲染welle的XML文件示例,但在S2上缩小(最后一个按钮部分显示)

<RelativeLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@color/white"
        android:useDefaultMargins="false">

    <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="10dp"
            android:layout_marginBottom="10dp"
            android:textAppearance="?android:attr/textAppearanceLarge"
            android:text="Me"
            android:id="@+id/textView"
            style="@style/title_parameters"
            android:layout_alignParentTop="true"
            />

    <Button
            android:id="@+id/btUpdateProfile"
            android:layout_width="fill_parent"
            android:layout_height="50dp"
            android:text="Update profile"
            android:textColor="@drawable/text_color_selected_parameters"
            style="@style/button_text"
            android:background="@drawable/solo_button_parameters"
            android:drawableRight="@drawable/table_view_cell_accessory_disclosure_indicator"
            android:layout_below="@+id/textView"
            />

    <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="20dp"
            android:layout_marginBottom="10dp"
            android:textAppearance="?android:attr/textAppearanceLarge"
            android:text="Friends"
            android:id="@+id/textView2"
            style="@style/title_parameters"
            android:layout_below="@+id/btUpdateProfile"/>
    <Button
            android:id="@+id/btFindFriends"
            android:layout_width="fill_parent"
            android:layout_height="50dp"
            android:text="Find friends"
            android:textColor="@drawable/text_color_selected_parameters"
            style="@style/button_text"
            android:background="@drawable/solo_button_parameters"
            android:drawableRight="@drawable/table_view_cell_accessory_disclosure_indicator"
            android:layout_below="@+id/textView2"/>


    <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="20dp"
            android:layout_marginBottom="10dp"
            android:textAppearance="?android:attr/textAppearanceLarge"
            android:text="Setting"
            android:id="@+id/textView3"
            style="@style/title_parameters"
            android:layout_below="@+id/btFindFriends"/>
    <Button
            android:id="@+id/btSharing"
            android:layout_width="fill_parent"
            android:layout_height="50dp"
            android:text="Sharing"
            android:gravity="top"
            android:textColor="@drawable/text_color_selected_parameters"
            style="@style/button_text"
            android:background="@drawable/top_corner_button_parameters"
            android:drawableRight="@drawable/table_view_cell_accessory_disclosure_indicator"
            android:layout_below="@+id/textView3"/>

    <Button
            android:id="@+id/btPushNotification"
            android:layout_width="fill_parent"
            android:layout_height="50dp"
            style="@style/button_text"
            android:textColor="@drawable/text_color_selected_parameters"
            android:text="Push notification"
            android:layout_marginTop="-2dp"
            android:background="@drawable/rectangle_button_parameters"
            android:drawableRight="@drawable/table_view_cell_accessory_disclosure_indicator"
            android:layout_below="@+id/btSharing"/>

    <Button
            android:id="@+id/btAutomation"
            android:layout_width="fill_parent"
            android:layout_height="50dp"
            android:gravity="bottom"
            android:text="Automation"
            style="@style/button_text"
            android:background="@drawable/bottom_corner_button_parameters"
            android:drawableRight="@drawable/table_view_cell_accessory_disclosure_indicator"
            android:layout_below="@+id/btPushNotification"
            android:textColor="@drawable/text_color_selected_parameters"
            android:layout_marginTop="-2dp"/>

    <Button
            android:id="@+id/btDisconnect"
            android:layout_width="fill_parent"
            android:layout_height="50dp"
            android:text="Disconect"
            android:layout_marginTop="20dp"
            android:textColor="@drawable/text_color_selected_parameters"
            style="@style/button_text"
            android:background="@drawable/solo_button_parameters"
            android:drawableLeft="@drawable/disconnect"
            android:layout_below="@+id/btAutomation"
            android:layout_marginBottom="30dp"/>

</RelativeLayout>

我会尽快上传截图。

我的问题再一次是:我如何为每个现有设备提供XML文件?

1 个答案:

答案 0 :(得分:0)

请你发一些代码。会好起来的。 没有定义固定大小的相对布局并正确使用其位置属性。 (这是评论)