如何在android上为不同的屏幕制作程序

时间:2013-11-18 21:38:24

标签: android android-layout user-interface android-studio

我正在为手机和平板电脑开发应用程序,问题是我需要在设备上运行的应用程序2.3.3安卓版本(我认为API等级10),其中大部分设备都使用2.7英寸的屏幕,所以我尝试将应用程序安装到这个屏幕和4英寸屏幕,现在的东西是平板电脑...应用程序非常简单,我只是在一个带有一些TextViews和Edittexts的scrollview中使用TableLayout;对于最小的屏幕,它可视化很好,但在平板电脑中看起来不太好,屏幕的一半被浪费了,我只是希望textviews和Edittext占据整个屏幕...我把应用程序只在肖像上的清单上模式。另外,我正在使用android studio ...这里是活动的xml:

<?xml version="1.0" encoding="utf-8"?>
<ScrollView
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:fillViewport="true"
    android:background="@drawable/logixbackground">

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

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

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textAppearance="?android:attr/textAppearanceLarge"
                android:text="@string/txvwTittle"
                android:id="@+id/txtVwTitulo"
                android:textSize="18sp"
                android:textColor="#c61d11"
                android:inputType="none"
                android:layout_column="0"
                android:focusable="false"
                android:textStyle="bold" />
        </TableRow>

        <TableRow
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_marginBottom="5dp">

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textAppearance="?android:attr/textAppearanceSmall"
                android:text="@string/tv_velocimetro"
                android:id="@+id/txtVwVelocimetro"
                android:layout_column="0"
                android:layout_marginTop="10dp"
                android:focusable="false"
                android:textStyle="bold"
                android:textSize="20dp" />
        </TableRow>

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

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

                <EditText
                    android:layout_width="150dp"
                    android:layout_height="38dp"
                    android:id="@+id/edTxtVelocidad"
                    android:layout_gravity="left"
                    android:inputType="none"
                    android:clickable="false"
                    android:editable="false"
                    android:focusable="false"
                    android:background="@drawable/abc_ab_transparent_dark_holo"
                    android:textStyle="bold"
                    android:textColor="#c61d11"
                    android:singleLine="false"
                    android:layout_marginTop="10dp" />

                <EditText
                    android:layout_width="140dp"
                    android:layout_height="38dp"
                    android:id="@+id/edTxtVelMedida"
                    android:inputType="none"
                    android:layout_marginLeft="10dp"
                    android:clickable="false"
                    android:editable="false"
                    android:focusable="false"
                    android:background="@drawable/abc_ab_transparent_dark_holo"
                    android:textColor="#c61d11"
                    android:textStyle="bold"/>

            </TableRow>

        </TableRow>

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

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/tv_brujula"
                android:id="@+id/txtVwBrujula"
                android:layout_column="0"
                android:layout_marginTop="5dp"
                android:textSize="20sp"
                android:inputType="none"
                android:focusable="false"
                android:textStyle="bold"/>
        </TableRow>

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

            <TableRow>

                <EditText
                    android:layout_width="150dp"
                    android:layout_height="38dp"
                    android:id="@+id/edTxtBrujula"
                    android:layout_column="0"
                    android:inputType="none|number"
                    android:focusable="false"
                    android:background="@drawable/abc_ab_transparent_dark_holo"
                    android:textStyle="bold"
                    android:textColor="#c61d11"/>

                <EditText
                    android:layout_width="140dp"
                    android:layout_height="38dp"
                    android:id="@+id/edTxtBrujdireccion"
                    android:layout_marginLeft="10dp"
                    android:inputType="textCapCharacters|none"
                    android:focusable="false"
                    android:background="@drawable/abc_ab_transparent_dark_holo"
                    android:textStyle="bold"
                    android:textColor="#c61d11"/>

            </TableRow>
        </TableRow>

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

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/tvgeopos"
                android:id="@+id/txtVwGeoPos"
                android:layout_column="0"
                android:layout_marginTop="5dp"
                android:inputType="none"
                android:focusable="false"
                android:textStyle="bold"
                android:textSize="20dp" />
        </TableRow>

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

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/txtvw_latitud"
                android:id="@+id/txtVwLatitud"
                android:layout_column="0"
                android:layout_marginTop="5dp"
                android:inputType="none"
                android:focusable="false"
                android:textStyle="bold"
                android:textSize="18dp" />
        </TableRow>

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

            <EditText
                android:layout_width="match_parent"
                android:layout_height="38dp"
                android:id="@+id/edTxtLatitud"
                android:layout_column="0"
                android:focusable="true"
                android:textStyle="bold"
                android:textColor="#c61d11"
                android:enabled="true"
                android:editable="true"
                android:focusableInTouchMode="false"
                android:background="@drawable/abc_ab_transparent_dark_holo"
                android:inputType="number" />
        </TableRow>

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

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/txtvw_longitud"
                android:id="@+id/txtVwLongitud"
                android:layout_column="0"
                android:layout_marginTop="5dp"
                android:inputType="none"
                android:textSize="18dp"
                android:focusable="false"
                android:textStyle="bold"/>
        </TableRow>

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

            <EditText
                android:layout_width="match_parent"
                android:layout_height="38dp"
                android:id="@+id/edTxtLongitud"
                android:layout_column="0"
                android:focusable="true"
                android:background="@drawable/abc_ab_transparent_dark_holo"
                android:textStyle="bold"
                android:textColor="#c61d11"
                android:enabled="true"
                android:editable="true"
                android:focusableInTouchMode="false"/>
        </TableRow>

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

            <Button
                style="?android:attr/buttonStyleSmall"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/btn_agregar_punto_interes"
                android:id="@+id/btnPuntoInteres"
                android:layout_column="0"
                android:textStyle="bold"
                android:layout_marginTop="5dp"
                android:textSize="15dp" />
        </TableRow>

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

            <Button
                style="?android:attr/buttonStyleSmall"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/btn_ver_punto_interes"
                android:id="@+id/btnVerPuntoInteres"
                android:layout_column="0"
                android:textStyle="bold"
                android:textSize="15dp" />
        </TableRow>

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

            <TableRow>

                <Button
                    style="?android:attr/buttonStyleSmall"
                    android:layout_width="150dp"
                    android:layout_height="wrap_content"
                    android:text="@string/btn_panico"
                    android:id="@+id/btnPanico"
                    android:layout_column="0"
                    android:textStyle="bold"
                    android:textSize="15dp"
                    android:textColor="#b2000c" />

                <Button
                    style="?android:attr/buttonStyleSmall"
                    android:layout_width="150dp"
                    android:layout_height="wrap_content"
                    android:text="@string/btn_ir_logix"
                    android:id="@+id/btnIrLogix"
                    android:textStyle="bold"
                    android:textSize="15dp" />

            </TableRow>
        </TableRow>
    </TableLayout>
</ScrollView>

这是最好的方法,或者我必须制作独立的应用程序,一个用于平板电脑,一个用于手机?

感谢您的建议!

4 个答案:

答案 0 :(得分:1)

我认为你应该从reading the documents开始,这清楚地说清楚你应该做些什么。

如果不这样,tl; dr版本就可以为同一个Activity / Fragment设置多个布局 - 一个用于小屏幕尺寸,一个用于大屏幕。

答案 1 :(得分:1)

你可以创建两个布局,一个是小屏幕手机将使用的默认布局,其xml文件将位于标准布局文件夹中,第二个将用于平板电脑,它应该在文件夹布局中 - sw600dp 。

你应该做的是将你当前的手机优化布局复制到这个新文件夹布局-sw600dp并调整它直到它在平板电脑上看起来不错。

实际上,如果它在手机上看起来不错,你应该能够调整它,这样它在平板电脑上看起来会很好。保持一种布局总是更好。

答案 2 :(得分:1)

浏览此内容。您将对此有所了解。

http://developer.android.com/guide/practices/screens_support.html

答案 3 :(得分:0)

不确定这是否有帮助,但我注意到在图形布局中如果使用Android Studio,它可以选择制作横向布局。它位于窗口左侧的下拉列表中,该窗口具有xml布局的“设计”选项卡。下拉列表中的第一个选项是“创建景观变化”。希望有所帮助。虽然您可能仍需要重新设计更广泛的屏幕。

相关问题