如何调整多屏幕android的用户界面?

时间:2013-12-30 07:12:12

标签: android css android-layout

我有一个xml文件,如下所示。

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

    android:orientation="vertical"
    android:paddingLeft="10dp"
    android:paddingRight="10dp" >

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Collaboration Set Up :"
        android:textSize="20dp" />

    <EditText
        android:id="@+id/projectname"
        android:layout_width="match_parent"
        android:layout_height="36dp"
        android:hint="Group Name"
        android:paddingLeft="10dp"
        android:background="@drawable/button"
        android:ems="10" >
    </EditText>

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Data To Collect :"
        android:textSize="20dp" />

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

        <CheckBox
            android:id="@+id/fnamechk"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:checked="true"
             android:enabled="false"
            android:textSize="13dp"
            android:text=" First Name" />

        <CheckBox
            android:id="@+id/lnamechk"
             android:textSize="13dp"
            android:layout_width="wrap_content"
            android:checked="true"
             android:enabled="false"
            android:layout_height="wrap_content"
            android:text="Last Name" />

        <CheckBox
            android:id="@+id/personalemailchk"
            android:layout_width="wrap_content"
            android:checked="true"
            android:enabled="false"
            android:layout_height="wrap_content"
            android:text="Personal Email"
            android:textSize="13dp" />

    </LinearLayout>

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

        <CheckBox
            android:id="@+id/workphonechk"
             android:textSize="13dp"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Work Ph." />

        <CheckBox
            android:id="@+id/companychk"
            android:layout_width="wrap_content"

            android:layout_height="wrap_content"
            android:text="Company"

            android:textSize="13dp" />

        <CheckBox
            android:id="@+id/Workemailchk"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Work Email"
            android:textSize="13dp" />

    </LinearLayout>

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

        <CheckBox
            android:id="@+id/cellchk"
            android:layout_width="wrap_content"
            android:textSize="13dp"
            android:layout_height="wrap_content"
            android:text="MobNo." />

    </LinearLayout>

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Data Visible to User:"
        android:textSize="20dp" />

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

        <CheckBox
            android:id="@+id/fname2"
            android:textSize="13dp"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:enabled="false"
            android:checked="true"
            android:text="First Name" />

        <CheckBox
            android:id="@+id/lname2"
            android:enabled="false"
            android:checked="true"
             android:textSize="13dp"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Last Name" />

        <CheckBox
            android:id="@+id/personalemail2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:enabled="false"
             android:checked="true"
            android:text="Personal Email"
            android:textSize="13dp" />

    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:paddingBottom="10dp" >

        <CheckBox
            android:id="@+id/workphone2"
             android:textSize="13dp"
            android:enabled="false"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Work Ph." />

        <CheckBox
            android:id="@+id/Comoany2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:enabled="false"

            android:text="Company"
            android:textSize="13dp" />

        <CheckBox
            android:id="@+id/workemail2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:enabled="false"
            android:text="Work Email"
            android:textSize="13dp" />

    </LinearLayout>

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

        <CheckBox
            android:id="@+id/cell2"
             android:textSize="13dp"
            android:enabled="false"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Mob.No" />

    </LinearLayout>

    <LinearLayout android:orientation="horizontal"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
        <RadioGroup
        android:id="@+id/radioGroup1"

        android:orientation="horizontal"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" >

        <RadioButton
            android:id="@+id/available"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
         android:textSize="13dp"
            android:text="Available" />

        <RadioButton
            android:id="@+id/none"
            android:textSize="13dp"
            android:layout_gravity="center_horizontal"
            android:layout_width="wrap_content"
                android:layout_marginLeft="50dp"
            android:layout_height="wrap_content"
            android:text="None" />
    </RadioGroup>

    </LinearLayout>
     <LinearLayout android:orientation="horizontal"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
        <RadioGroup
        android:id="@+id/radioGroup2"
        android:orientation="horizontal"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" >

        <RadioButton
            android:id="@+id/Private"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
           android:textSize="13dp"
            android:text="Private" />

        <RadioButton
            android:id="@+id/Public"
              android:layout_marginLeft="65dp"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
           android:textSize="13dp"
            android:text="Public" />
    </RadioGroup>

    </LinearLayout>

    <Button
        android:id="@+id/generate"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:background="@drawable/login"
        android:text="Generate" />

</LinearLayout>
</ScrollView>

当我在较小的设备中打开它时,它看起来像这样。我已经实现了滚动视图。 enter image description here

当我在平板电脑中打开时,它就像这样。

enter image description here

正如您所看到的,在标签中浪费了更大的空间,那么我可以利用可用空间并根据屏幕尺寸将复选框分布在屏幕上吗?

4 个答案:

答案 0 :(得分:4)

您必须使用Configuration Qualifiers,您可以参考以下帖子:

1。Post A  2。Post B

基本上你的项目应该是这样的:

enter image description here

或者,您也可以通过尺寸控制布局,例如:

<Button android:width= "@dimen/somewidth"/>

将此维度声明为多个值,如下所示:

enter image description here

答案 1 :(得分:1)

您必须根据您的设备将不同的图像放在不同的可绘制文件夹中。 边距和填充不是直接在xml文件中,但这是在dimens.xml文件中声明然后你使用它..这个dimens.xml文件根据设备特定的不同...请检查它。如果有任何疑问那么告诉我。

Check for more details

答案 2 :(得分:0)

我发现您每次使用多个标签时都会定义多个复选框。 我曾经遇到过这个问题而且我找到了解决方法,但是我正在动态地定义使用java代码的元素。

LINK 解决了我的问题。 页面中的给定功能定义了在达到特定设备的最大屏幕宽度时创建新线性布局的方法。

我还想建议使用这么多代码来定义xml文件中的复选框。这将导致应用程序的大小增加。但是,如果您可以在字符串中定义复选框的名称,然后在java代码中循环它们以创建复选框,则apk文件将更小,更容易为用户下载。

我希望这有帮助..

答案 3 :(得分:0)

除了已经给出的答案。我们可以将ems添加到维度 在dimens.xml中是这样的 3