大家好我正在为Android制作游戏,我需要帮助在屏幕上放置一些视图,使它们与屏幕成比例。请考虑以下用于布局的XML代码:
<?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"
android:background="@drawable/background">
<ImageView android:src="@drawable/logo" android:layout_height="wrap_content" android:layout_width="fill_parent" android:id="@+id/logo" ></ImageView>
<FrameLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="2">
<ScrollView android:layout_width="fill_parent" android:layout_height="wrap_content" android:id="@+id/buttons">
<LinearLayout android:id="@+id/main_layout" android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="wrap_content" android:gravity="center_horizontal">
<ImageView
android:paddingRight="15dp"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:src="@drawable/menu_start_button"
android:id="@+id/start_button">
</ImageView>
<ImageView
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:src="@drawable/menu_tutorial_button"
android:id="@+id/tutorial_button">
</ImageView>
</LinearLayout>
</ScrollView>
<LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="vertical" android:gravity="bottom" android:layout_alignParentRight="true" android:id="@+id/option_buttons">
<ImageView android:id="@+id/option_sound" android:src="@drawable/option_sound" android:layout_height="wrap_content" android:layout_width="wrap_content" android:paddingRight="5dp" android:paddingBottom="5dp"/>
<ImageView android:id="@+id/option_vibrate" android:layout_width="wrap_content" android:src="@drawable/option_vibrate" android:layout_height="wrap_content" android:paddingBottom="5dp" android:paddingRight="5dp"></ImageView>
<ImageView android:id="@+id/option_show_help" android:layout_width="wrap_content" android:src="@drawable/option_show_help" android:layout_height="wrap_content"android:paddingRight="5dp"></ImageView>
</LinearLayout>
</FrameLayout>
我希望徽标(标识为logo
)占据屏幕的前30%。 FrameLayout占据了屏幕底部的30%,中间有两个按钮(包含在ID为buttons
的ScrollView中)和三个选项按钮,它们应该位于FrameLayout的右侧(但对于某些人来说)因为它在左侧)垂直对齐。 android:layout_weight
无法解决我的问题,因为我希望这些视图与屏幕成比例。那么我的问题有一个优雅的解决方案,还是我必须做一些棘手的魔术?
答案 0 :(得分:0)
想出来。毕竟我确实必须使用layout_weight
属性。我必须将父级weightSum
属性设置为1,然后将其所有子元素设置为layout_weight
,使其与上述weightSum
成比例。例如,如果子元素必须是父级高度的50%,我将其layout_weight
设置为0.5,将其layout_height
属性设置为0dp。