我想在所有设备上制作具有完全相同布局的游戏。我熟悉dp
,wrap_content
和fill_parent
。但他们不会产生完全相同的布局。
有没有办法以相对于屏幕宽度和高度的百分比来制作各种视图的宽度和高度,以及它们从设备屏幕边缘的宽度?
就像是:
android:layout_width="40%"
我知道上面的 XML 代码不起作用,但是有解决方法吗?没有Java解决方案吗?某物?下图中是我试图在所有设备中实现的目标。
我知道上面的 XML 代码不起作用,但是有解决方法吗?
LinearLayout
并android:layout_weight
允许您按百分比工作。以下布局包含三个按钮,分别占屏幕的 50%、30% 和 20%:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical">
<Button
android:layout_width="fill_parent"
android:layout_height="0dip"
android:layout_weight="50"
android:text="@string/fifty_percent"/>
<Button
android:layout_width="fill_parent"
android:layout_height="0dip"
android:layout_weight="30"
android:text="@string/thirty_percent"/>
<Button
android:layout_width="fill_parent"
android:layout_height="0dip"
android:layout_weight="20"
android:text="@string/twenty_percent"/>
</LinearLayout>
要按百分比执行操作,请将宽度或高度(LinearLayouts
分别用于水平或垂直)设置为0dp
,然后分配android:layout_weight
给所需的百分比(例如,20
)。如果权重之和不会加到 100,android:weightSum="100"
则加到LinearLayout
自身。
当然,对于术语“EXACT”的任何常规定义,按百分比做事不会为您提供“完全相同的布局”。但是,也许它会满足您的需求。它当然可以从您的屏幕截图中实现标记设计。