如何使用相对布局制作适合所有屏幕尺寸的应用? 目前我正在使用按钮位置和尺寸的常数值,它只在HTC One S上看起来很好。这是我用于开发的设备。 我希望按钮位于每个显示器上的适当位置。
我在应用程序中有一个背景,那就是你可以在这里看到它的HUD:
按钮和LED必须位于孔内的确切位置。它看起来像这样:
布局:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/hud"
android:orientation="horizontal"
android:splitMotionEvents="false"
android:windowEnableSplitTouch="false"
tools:context=".MainActivity" >
<ImageButton
android:id="@+id/connect_button"
android:layout_width="122sp"
android:layout_height="122sp"
android:layout_marginLeft="338dp"
android:layout_marginTop="54dp"
android:background="@drawable/connect_inactive"
android:contentDescription="@string/connect_button_description" />
<ImageButton
android:id="@+id/disconnect_button"
android:layout_width="122sp"
android:layout_height="122sp"
android:layout_marginLeft="338dp"
android:layout_marginTop="195dp"
android:background="@drawable/disconnect_inactive"
android:contentDescription="@string/disconnect_button_description" />
<ImageButton
android:id="@+id/throttleup_button"
android:layout_width="122sp"
android:layout_height="122sp"
android:layout_marginLeft="483dp"
android:layout_marginTop="54dp"
android:background="@drawable/throttleup_inactive"
android:contentDescription="@string/throttleup_button_description" />
<ImageButton
android:id="@+id/throttledown_button"
android:layout_width="122sp"
android:layout_height="122sp"
android:layout_marginLeft="483dp"
android:layout_marginTop="195dp"
android:background="@drawable/throttledown_inactive"
android:contentDescription="@string/throttledown_button_description" />
<ImageButton
android:id="@+id/moveforward_button"
android:layout_width="170sp"
android:layout_height="160sp"
android:layout_marginLeft="79dp"
android:layout_marginTop="30dp"
android:background="@drawable/control_forward_inactive"
android:contentDescription="@string/moveforward_button_description" />
<ImageButton
android:id="@+id/movebackward_button"
android:layout_width="170sp"
android:layout_height="160sp"
android:layout_marginLeft="79dp"
android:layout_marginTop="153dp"
android:background="@drawable/control_backward_inactive"
android:contentDescription="@string/movebackward_button_description" />
<ImageButton
android:id="@+id/moveleft_button"
android:layout_width="170sp"
android:layout_height="160sp"
android:layout_marginLeft="17dp"
android:layout_marginTop="92dp"
android:background="@drawable/control_left_inactive"
android:contentDescription="@string/moveleft_button_description" />
<ImageButton
android:id="@+id/moveright_button"
android:layout_width="170sp"
android:layout_height="160sp"
android:layout_marginLeft="141dp"
android:layout_marginTop="92dp"
android:background="@drawable/control_right_inactive"
android:contentDescription="@string/moveright_button_description" />
<ImageView
android:id="@+id/led"
android:layout_width="45sp"
android:layout_height="45sp"
android:layout_marginLeft="297dp"
android:layout_marginTop="280dp"
android:background="@drawable/led_inactive"
android:contentDescription="@string/led_description" />
</RelativeLayout>
答案 0 :(得分:2)
不是对值进行硬编码,而是使用dimen
文件来实现此目的。
为值指定不同的文件夹,例如values-large
等,并创建维度文件并根据屏幕大小放置特定值。
对所有Layouts
使用权重而不是给出常量值,因为权重是屏幕的%类型,默认情况下在清单支持屏幕视图中为true。
创建像这样的多屏幕尺寸布局文件夹
layout-small
,layout-large
,layout-xlarge
所以你将你的布局XML
文件复制到这些文件夹中,现在你可以编辑指定的框宽度和大小。< / p>
这些链接将帮助您为多个屏幕创建应用程序:
答案 1 :(得分:0)