我目前正在尝试为Android应用程序构建Gameboard。我们正在尝试建立Balderdash游戏。我目前有两个嵌套的线性布局来创建行和列结构。我想为每个玩家创建一个新的玩家图标,并将每个图标设置在起始位置的顶部。当玩家获得一个点时,他们的图标将移动到下一个游戏板部分,直到玩家已经达到游戏板的最后部分(也就是说他们达到赢得的点数。)
问题是我目前无法确定将播放器图标的ImageView放置在起始位置之上的方法。我还需要能够创建多个播放器图标并将它们错开一点才能放在同一块上。
我的布局XML代码如下:
<FrameLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<LinearLayout
android:paddingTop="20dp"
android:layout_width="368dp"
android:layout_height="wrap_content"
android:orientation="horizontal">
<LinearLayout
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:orientation="vertical"
android:paddingLeft="5dp">
<ImageView
android:id="@+id/square7"
android:layout_width="181dp"
android:layout_height="70dp"
android:background="@drawable/orangegrid"
tools:ignore="ContentDescription" />
<ImageView
android:id="@+id/square6"
android:layout_width="181dp"
android:layout_height="70dp"
android:background="@drawable/bluegrid" />
<ImageView
android:id="@+id/square5"
android:layout_width="181dp"
android:layout_height="70dp"
android:background="@drawable/cyangrid" />
<ImageView
android:id="@+id/square4"
android:layout_width="181dp"
android:layout_height="70dp"
android:background="@drawable/bluegrid" />
<ImageView
android:id="@+id/square3"
android:layout_width="181dp"
android:layout_height="70dp"
android:background="@drawable/orangegrid"/>
<ImageView
android:id="@+id/square2"
android:layout_width="181dp"
android:layout_height="70dp"
android:background="@drawable/cyangrid" />
<TextView
android:text="@string/start"
android:textColor="#fff"
android:gravity="center"
android:id="@+id/square1"
android:background="@drawable/bluegrid"
android:layout_width="181dp"
android:layout_height="70dp"/>
</LinearLayout>
<LinearLayout
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:orientation="vertical">
<ImageView
android:id="@+id/square8"
android:layout_width="181dp"
android:layout_height="70dp"
android:background="@drawable/cyangrid" />
<ImageView
android:id="@+id/square9"
android:layout_width="181dp"
android:layout_height="70dp"
android:background="@drawable/bluegrid" />
<ImageView
android:id="@+id/square10"
android:layout_width="181dp"
android:layout_height="70dp"
android:background="@drawable/orangegrid"/>
<ImageView
android:id="@+id/square11"
android:layout_width="181dp"
android:layout_height="70dp"
android:background="@drawable/cyangrid" />
<ImageView
android:id="@+id/square12"
android:layout_width="181dp"
android:layout_height="70dp"
android:background="@drawable/bluegrid" />
<ImageView
android:id="@+id/square13"
android:layout_width="181dp"
android:layout_height="70dp"
android:background="@drawable/orangegrid"/>
<TextView
android:text="@string/end"
android:textColor="#fff"
android:gravity="center"
android:id="@+id/square14"
android:background="@drawable/cyangrid"
android:layout_width="181dp"
android:layout_height="70dp"/>
</LinearLayout>
</LinearLayout>
<ImageView
android:id="@+id/arrow"
android:layout_width="75dp"
android:layout_height="75dp"
android:layout_gravity="center_horizontal"
android:paddingBottom="20dp"
android:src="@drawable/arrow"
/>
</FrameLayout>
</android.support.constraint.ConstraintLayout>
任何帮助或建议表示赞赏!
答案 0 :(得分:1)
<RelativeLayout
android:layout_width="48dp"
android:layout_height="48dp"
android:layout_gravity="center">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</RelativeLayout>
答案 1 :(得分:0)
你sholud使用RelativeLayout。 LinearLayout的孩子不能相互重叠。 访问:https://developer.android.com/guide/topics/ui/layout/linear.html
它清楚地说明&#34; LinearLayout的所有子项一个接一个地堆叠,因此垂直列表每行只有一个子节点,无论它们有多宽,只有一个水平列表是一排高(最高的孩子的高度,加上填充)。 LinearLayout尊重儿童与每个孩子的重力(右,中或左对齐)之间的边距。&#34;