如何在横向和纵向模式下使我的应用适用于任何屏幕尺寸?

时间:2013-09-10 09:57:11

标签: android

我的应用程序目前在横向和纵向模式下适用于大屏幕。在较小的屏幕中,它仅适用于纵向模式。我试过让它可滚动,但我似乎没有任何建议吗?

<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".SpeedActivity" >

    <TableRow
        android:id="@+id/tableRow6"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="center_horizontal" >

        <ScrollView
            android:id="@+id/scroller1"
            android:layout_width="fill_parent"
            android:fillViewport="true"
            android:orientation="vertical"
            android:scrollbars="vertical" >

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:gravity="center_vertical|center_horizontal" >

                <ImageView
                    android:id="@+id/imageView1"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_gravity="center"
                    android:scaleX="1.0"
                    android:scaleY="1.0"
                    android:src="@drawable/uzcrest" />

                <TextView
                    android:id="@+id/textView7"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:textSize="15sp" />
            </LinearLayout>
        </ScrollView>
    </TableRow>

    <TableRow android:gravity="center_horizontal" >

        <LinearLayout>

            <TextView
                android:id="@+id/textView3"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:gravity="center"
                android:text="Department of Computer Science"
                android:textSize="15sp" />
        </LinearLayout>
    </TableRow>

    <TableRow
        android:id="@+id/tableRow9"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" >

        <TextView
            android:id="@+id/textView8"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text=""
            android:textSize="35sp" />
    </TableRow>

    <TableRow
        android:id="@+id/tableRow1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:gravity="center_horizontal" >

        <TextView
            android:id="@+id/textView1"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:gravity="center"
            android:text="SmartDrive Demo"
            android:textSize="35sp" />
    </TableRow>

    <TableRow
        android:id="@+id/tableRow2"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:gravity="center_horizontal" >

        <TextView
            android:id="@+id/textView4"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textSize="30sp" />

    </TableRow>

    <TableRow
        android:id="@+id/tableRow3"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:gravity="center_horizontal" >

        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="fill_parent" >
        </LinearLayout>
    </TableRow>

    <TableRow
        android:id="@+id/tableRow8"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" >

        <TextView
            android:id="@+id/textView6"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text=""
            android:textSize="20sp" />
    </TableRow>

    <TableRow
        android:id="@+id/tableRow4"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:gravity="center_horizontal" >

        <TextView
            android:id="@+id/textView2"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:gravity="center"
            android:text="Current Speed"
            android:textAppearance="?android:attr/textAppearanceLarge" />
    </TableRow>

    <TableRow
        android:id="@+id/tableRow7"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" >

        <TextView
            android:id="@+id/textView5"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text=""
            android:textSize="12sp" />
    </TableRow>

    <TableRow
        android:id="@+id/tableRow5"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:gravity="center_horizontal" >

        <TextView
            android:id="@+id/txtCurrentSpeed"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:editable="false"
            android:gravity="center"
            android:singleLine="true"
            android:text="0.0 km/h"
            android:textSize="60sp"
            android:textStyle="bold" />
    </TableRow>



</TableLayout>

我还在我的android清单文件中包含以下内容:

<supports-screens
    android:anyDensity="true"
    android:largeScreens="true"
    android:normalScreens="true"
    android:resizeable="true"
    android:smallScreens="true"
    android:xlargeScreens="true" />

3 个答案:

答案 0 :(得分:1)

尝试创建一个layout-land目录,并将布局XML文件的横向版本放在该目录中。

答案 1 :(得分:1)

首先在应用中的 res 文件夹中创建 layout-land 文件夹。并为landscape创建xml文件。 其他技术是在您的活动类中使用此代码

requestWindowFeature(Window.FEATURE_NO_TITLE);
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
            WindowManager.LayoutParams.FLAG_FULLSCREEN);
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON,
            WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);

    this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);

答案 2 :(得分:0)

首先在res文件夹中创建layout-land文件夹,然后将横向布局XML复制到layout-land中。复制布局后,XML作为父级。记住一件事,如果你在清单中使用“android:configChanges =”orientation“,那么你必须删除这个标签,或者你必须在你的活动中重写OnConfigChange()方法,你必须再次调用setContentView。