如何使布局支持多屏幕尺寸(响应)

时间:2014-05-09 09:42:52

标签: java android xml

我正在使用以下代码来查看我的页面,但内容会根据屏幕大小和方向进行更改,请在此处帮助

about.xml

<?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"
android:background="#493F0B" >

<TextView
    android:id="@+id/tvAboutHeader"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="#F5F6D4"
    android:gravity="center"
    android:padding="10sp"
    android:text="@string/about_title"
    android:textAppearance="?android:attr/textAppearanceLarge" />

<TextView
    android:id="@+id/tvabout1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_below="@+id/tvAboutHeader"
    android:layout_marginTop="8dp"
    android:background="#CDE855"
    android:padding="10sp"
    android:text="@string/about_info1"
    android:textAppearance="?android:attr/textAppearanceMedium" />

<TextView
    android:id="@+id/tvabout2"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_below="@+id/tvabout1"
    android:background="#ABC921"
    android:padding="10sp"
    android:text="@string/about_info2"
    android:textAppearance="?android:attr/textAppearanceMedium" />

<TextView
    android:id="@+id/tvabout3"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_below="@+id/tvabout2"
    android:background="#BEDB39"
    android:text="@string/about_info3"
    android:textAppearance="?android:attr/textAppearanceMedium" />
</RelativeLayout>

我考虑使用滚动视图,但如果需要,我会收到错误

About.java

import android.app.Activity;
import android.os.Bundle;
public class About extends Activity{

@Override
public void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.about);

    }
}

3 个答案:

答案 0 :(得分:0)

为不同的屏幕尺寸制作不同的布局。首先阅读Documentation 您需要做的就是在res/中创建一个名为layout-sw<number>dp的新文件夹,其中将替换为屏幕尺寸。例如,7英寸平板电脑将使用layout-sw600dp,而10英寸平板电脑将使用layout-sw720dp,复制此处的布局,并重新排列它以便响应。

对于不同的方向,您可以将-land-port放在布局文件夹的名称之后。

答案 1 :(得分:0)

我确定它是因为您使用相对布局,有时使用它时两个widgits可以合并。尝试使用可以解决问题的线性布局,如果这是您的问题。

答案 2 :(得分:0)

<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#493F0B" >

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

        <TextView
            android:id="@+id/tvAboutHeader"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="#F5F6D4"
            android:gravity="center"
            android:padding="10sp"
            android:text="@string/about_title"
            android:textAppearance="?android:attr/textAppearanceLarge" />

        <TextView
            android:id="@+id/tvabout1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:layout_below="@+id/tvAboutHeader"
            android:layout_marginTop="8dp"
            android:background="#CDE855"
            android:padding="10sp"
            android:text="@string/about_info1"
            android:textAppearance="?android:attr/textAppearanceMedium" />

        <TextView
            android:id="@+id/tvabout2"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:layout_below="@+id/tvabout1"
            android:background="#ABC921"
            android:padding="10sp"
            android:text="@string/about_info2"
            android:textAppearance="?android:attr/textAppearanceMedium" />

        <TextView
            android:id="@+id/tvabout3"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:layout_below="@+id/tvabout2"
            android:background="#BEDB39"
            android:text="@string/about_info3"
            android:textAppearance="?android:attr/textAppearanceMedium" />
    </RelativeLayout>

</ScrollView>

试试这个