Android开发新手在这里!创建一个基于足球的游戏,带有一个开始按钮,一个可点击的球形图像,然后是3个目标,以瞄准屏幕布局的顶部。我的XML定位存在两个问题。首先,3个目标放在彼此的顶部,而不是在中心目标的右侧/左侧。其次,球形图像直接位于目标下方,但我希望球和目标之间有一个很大的空间来瞄准,我该如何创造空间呢?
XML代码:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/green"
android:orientation="vertical" >
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="80dp" >
<ImageView
android:id="@+id/t1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_centerInParent="true"
android:contentDescription="@string/target1"
android:src="@drawable/t1_box" />
<ImageView
android:id="@+id/t2"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:contentDescription="@string/target2"
android:layout_alignParentLeft="true"
android:src="@drawable/t2_box" />
<ImageView
android:id="@+id/t3"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:contentDescription="@string/target3"
android:layout_alignParentRight="true"
android:src="@drawable/t3_box" />
</RelativeLayout>
<ImageView
android:id="@+id/football_only"
android:layout_width="90dp"
android:layout_height="50dp"
android:layout_gravity="center_horizontal"
android:contentDescription="@string/football_only"
android:src="@drawable/blue_football"
android:clickable="true" />
<Button
android:id="@+id/startCountdownButton"
android:layout_width="82dp"
android:layout_height="40dp"
android:layout_gravity="center_horizontal"
android:layout_marginBottom="35dp"
android:text="@string/start" />
</LinearLayout>
更新:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/green"
android:orientation="vertical" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<ImageView
android:id="@+id/t1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center_horizontal"
android:contentDescription="@string/target1"
android:src="@drawable/t1_box" />
<ImageView
android:id="@+id/t2"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginLeft="40dp"
android:contentDescription="@string/target2"
android:src="@drawable/t2_box" />
<ImageView
android:id="@+id/t3"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginRight="40dp"
android:contentDescription="@string/target3"
android:src="@drawable/t3_box" />
</LinearLayout>
<ImageView
android:id="@+id/football_only"
android:layout_width="90dp"
android:layout_height="50dp"
android:layout_gravity="center_horizontal"
android:clickable="true"
android:contentDescription="@string/football_only"
android:src="@drawable/blue_football" />
<Button
android:id="@+id/startCountdownButton"
android:layout_width="82dp"
android:layout_height="40dp"
android:layout_gravity="center_horizontal"
android:layout_marginBottom="35dp"
android:text="@string/start" />
</LinearLayout>
答案 0 :(得分:1)
3个目标彼此重叠,而不是中心目标的右侧/左侧。
这是因为他们的父级是RelativeLayout
,所以默认情况下它们位于父级的左上角。您可以使用android:layout_alightToRightOf="@id/someid"
等属性。但您可能只想将RelativeLayout
更改为LinearLayout
,然后将它们从左到右放置。
其次,球形图像直接位于目标下方,但我希望球和目标之间有一个很大的空间来瞄准,我该如何创造空间呢?
您可以在它们之间添加一个空<View>
来添加空格,并为其提供所需的height
。您也可以在球上使用margin
或保留ViewGroup
的{{1}}。
像
这样的东西ImageView
答案 1 :(得分:0)
您可以使用以下属性:
android:layout_toRightOf="@id/t1"
和
android:layout_toLeftOf="@id/t1"
将这些特定图像对齐到中间图像的左侧或右侧。
请注意,为此您需要RelativeLayout