所有设备的通用UI,无论大小

时间:2013-08-26 07:57:08

标签: android android-layout scale density-independent-pixel

我的应用程序在手机上工作正常,但当我在TAB用户界面上运行它变得太小。但我希望UI的大小相对于设备的大小。我是否需要在清单中添加任何内容。我正在做什么。这是我的XML

 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent" 
android:orientation="vertical">

<TextView
    android:id="@+id/textView1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Select The Game Level" />

<Button
    android:id="@+id/button1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Level1" />

<Button
    android:id="@+id/button2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="level2" />

<Button
    android:id="@+id/button3"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="level3" />
 </LinearLayout>
Handset UI appearence

Handset UI appearence

Tablet UI appearence

Tablet UI appearence

1 个答案:

答案 0 :(得分:1)

让我们试着在这里探讨你的假设:

  1. 您的按钮大小设置为“wrap_content”。这意味着它取决于它包装的文本的大小。

  2. 您希望按钮根据显示应用程序的屏幕的可视大小来更改视觉大小。

  3. 因此:您基本上希望根据设备的屏幕改变字体大小。

  4. 我觉得这不是实现你想要的正确方法。有几个工具可以帮助你,让我们探讨一个:权重属性:What does android:layout_weight mean?

    这是一个按钮数组的示例,在任何屏幕上看起来都是类似的(强调在这里是“类似的”。但这是你想要实现的):

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content" >
    
            <Button
                android:id="@+id/btnMainMenuTestUSB"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:text="Button1" />
    
            <Button
                android:id="@+id/btnMainMenuSetLocationNew"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:text="Button2" />
        </LinearLayout>
    
         <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content" >
    
            <Button
                android:id="@+id/btnLineOfSight"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:text="Button3" />
    
                   <Button
                android:id="@+id/btnTargetScreen"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:text="Button4" />
        </LinearLayout>