使android支持所有屏幕尺寸

时间:2014-02-19 19:48:45

标签: android android-layout

我觉得我是唯一一个在这里迷路的人。每个人似乎都可以使用DP来使应用程序跨多种屏幕尺寸工作。对我来说,每当我加载另一个屏幕时,对齐将永远不会是正确的比例。

但是,如果我使用android:weight,所有设备都可以很好地扩展。我对android重量的一切问题是它并不总是想要将图像很好地调整到布局中,更不用说使用嵌套权重我会得到的警告。

我看到的一个解决方案是为每个可能的屏幕尺寸创建一个新的屏幕尺寸。这是其他人做的吗?起初我以为我们必须只创建x大,小等等布局才发现即使这些也不能应对各种屏幕尺寸(即使nexus 7不能很好地适应这些类别)

示例代码

<RelativeLayout
    android:layout_width="fill_parent"
    android:layout_height="0dp"
    android:layout_weight="50"
    android:background="@drawable/layout_border"
    android:padding="10dp" >

    <ImageView
        android:id="@+id/imageView1"
        android:layout_width="160dp"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_centerVertical="true"
        android:contentDescription="@string/app_name"
        android:src="@drawable/yg" />

            <ProgressBar
                android:id="@+id/progressBar2"
                style="@android:style/Widget.ProgressBar.Horizontal"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignBottom="@+id/imageView1"
                android:layout_alignParentRight="true"
                android:layout_toRightOf="@+id/imageView1"
                android:paddingBottom="10dp"
                android:paddingLeft="10dp"
                android:paddingRight="10dp"
                android:progress="50" />

            <TextView
                android:id="@+id/textView1"
                style="@style/NormalFont"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_above="@+id/progressBar2"
                android:layout_alignLeft="@+id/progressBar2"
                android:layout_marginLeft="36dp"
                android:text="@string/exercise_percent" />

            <ImageButton
                android:id="@+id/imageButton1"
                android:layout_width="100dip"
                android:layout_height="100dip"
                android:layout_above="@+id/textView1"
                android:layout_toRightOf="@+id/imageView1"
                android:adjustViewBounds="true"
                android:contentDescription="@string/app_name"
                android:background="@drawable/start"
                android:onClick="meditateTask" />



</RelativeLayout>

例如,这里的图像按钮在每个新的屏幕尺寸上都不合适。

1 个答案:

答案 0 :(得分:2)

您可以为所有屏幕尺寸创建相同的布局,小尺寸,普通尺寸,大尺寸和x尺寸。 如何做到这一点:在布局文件夹中创建新的XML布局文件,使其与要修改的布局具有相同的名称以适合所有屏幕大小。单击下一步,将显示一些选项,查找大小并插入它。然后,您将能够选择所需的屏幕尺寸。 启动时,系统将为设备选择最佳屏幕尺寸。 重复所有4种屏幕尺寸。希望这有帮助