Android多屏幕 - 使用dp进行UI

时间:2014-05-19 15:42:53

标签: android fullscreen

好! 我现在正在开发Android应用程序,但我想知道如何将所有布局设置放到多个设备屏幕上。

* 我确实创建了多个屏幕文件夹。

RES /布局小/ main.xml中

RES /布局正常/ main.xml中

RES /布局大/ main.xml中

RES /布局XLARGE / main.xml中

* 以下是我的代码示例。

 <LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >
    <LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal" >
    <Button
    android:layout_width="120dp"
    android:layout_height="70dp"
    android:text="@sting/button1" >
<Button
    android:layout_width="120dp"
    android:layout_height="70dp"
    android:text="@sting/button2" >
<Button
    android:layout_width="120dp"
    android:layout_height="70dp"
    android:text="@sting/button3" >
<Button
    android:layout_width="120dp"
    android:layout_height="70dp"
    android:text="@sting/button3" >
</LinearLayout>
</LinearLayout>

正如您所看到的,我为每个按钮使用了120dp。 当我在虚拟设备机器中运行时,屏幕很合适。 (因为我在虚拟设备机器中使用了480dp宽屏幕。) 然而,当我运行真正的手机设备(我的:SamSung Galaxy Note 1(韩国版),我父亲的:SamSung Galaxy S2(韩国版)和我妈妈的:SamSung Galaxy S(加拿大版)),尽管我创造了不同屏幕大小的文件夹,我可以看到按钮的(宽度)离设备的屏幕布局太远了。 任何人都可以告诉我如何适应所有设备屏幕? 在这种情况下我还能使用dp吗? (请给我一个例子!)

1 个答案:

答案 0 :(得分:0)

您需要阅读使用LinearLayoutRelativeLayout(以及其他布局)。你根本没有使用他们的布局参数。您不需要指定任何特定大小(如120dp)来支持您的情况下的多种屏幕尺寸。

http://developer.android.com/guide/topics/ui/declaring-layout.html

这是你应该做的:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:layout_width="match_parent"
              android:layout_height="wrap_content"
              android:orientation="horizontal"
              android:weightSum="4">

    <Button
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:text="@sting/button1"
        android:layout_weight="1" />

    <Button
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:text="@sting/button2"
        android:layout_weight="1" />

    <Button
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:text="@sting/button3"
        android:layout_weight="1" />

    <Button
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:text="@sting/button4"
        android:layout_weight="1" />
</LinearLayout>