我希望在所有设备上制作完全相同布局的游戏。我熟悉dp
,wrap_content
和fill_parent
。但它们不会产生完全相同的布局。
有没有办法以相对于屏幕宽度和高度的百分比来设置各种视图的宽度和高度,以及设备屏幕边缘的芒果?
类似的东西:
android:layout_width="40%"
我知道上面的XML代码不起作用,但是有解决方法吗?是不是有一个Java内解决方案?什么东西? 在下面的图像中,我试图在所有设备中实现这一目标。
答案 0 :(得分:2)
我知道上面的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”一词的任何传统定义提供“完全相同的布局”。但是,也许它会满足您的需求。它当然可以从你的截图中实现标记设计。