动态地将按钮放在背景图像上有圆圈的位置

时间:2013-08-29 06:41:45

标签: android xml android-layout android-button

我是新的Android开发人员,并尝试使用eclipse IDE开发Android游戏。哪个有这样的游戏板 http://i.imgur.com/bv149i8l.jpg?1

我只想将按钮放在有圆圈的位置。

我使用相对布局对xml中的按钮位置进行了硬编码,但由于屏幕大小不同,此解决方案无法正常工作

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/AbsoluteLayout1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/bani_qatar_board" >

<Button
    android:id="@+id/btn_a8"
    android:layout_width="27dp"
    android:layout_height="25dp"
    android:layout_alignLeft="@+id/btn_a1"
    android:layout_below="@+id/btn_a1"
    android:layout_marginTop="82dp"
    android:background="@drawable/blank" />

<Button
    android:id="@+id/btn_a7"
    android:layout_width="27dp"
    android:layout_height="25dp"
    android:layout_alignLeft="@+id/btn_a8"
    android:layout_alignParentBottom="true"
    android:layout_marginBottom="7dp"
    android:background="@drawable/blank" />

<Button
    android:id="@+id/btn_b2"
    android:layout_width="27dp"
    android:layout_height="25dp"
    android:layout_below="@+id/btn_a1"
    android:layout_marginLeft="51dp"
    android:layout_marginTop="14dp"
    android:layout_toRightOf="@+id/btn_a1"
    android:background="@drawable/blank" />

<Button
    android:id="@+id/btn_b1"
    android:layout_width="27dp"
    android:layout_height="25dp"
    android:layout_alignBottom="@+id/btn_a8"
    android:layout_alignLeft="@+id/btn_b2"
    android:layout_marginBottom="2dp"
    android:background="@drawable/blank" />

<Button
    android:id="@+id/btn_b8"
    android:layout_width="27dp"
    android:layout_height="25dp"
    android:layout_above="@+id/btn_a7"
    android:layout_alignLeft="@+id/btn_b1"
    android:layout_marginBottom="11dp"
    android:background="@drawable/blank" />

<Button
    android:id="@+id/btn_c2"
    android:layout_width="27dp"
    android:layout_height="25dp"
    android:layout_below="@+id/btn_b2"
    android:layout_marginLeft="52dp"
    android:layout_marginTop="5dp"
    android:layout_toRightOf="@+id/btn_b8"
    android:background="@drawable/blank" />

<Button
    android:id="@+id/btn_c1"
    android:layout_width="27dp"
    android:layout_height="25dp"
    android:layout_alignBottom="@+id/btn_a8"
    android:layout_alignLeft="@+id/btn_c2"
    android:background="@drawable/blank" />

<Button
    android:id="@+id/btn_c8"
    android:layout_width="27dp"
    android:layout_height="25dp"
    android:layout_above="@+id/btn_b8"
    android:layout_alignLeft="@+id/btn_c1"
    android:layout_marginBottom="7dp"
    android:background="@drawable/blank" />

<Button
    android:id="@+id/btn_b3"
    android:layout_width="27dp"
    android:layout_height="25dp"
    android:layout_alignBottom="@+id/btn_b2"
    android:layout_alignLeft="@+id/btn_a2"
    android:layout_marginBottom="4dp"
    android:background="@drawable/blank" />

<Button
    android:id="@+id/btn_c3"
    android:layout_width="27dp"
    android:layout_height="25dp"
    android:layout_alignBaseline="@+id/btn_c2"
    android:layout_alignBottom="@+id/btn_c2"
    android:layout_alignLeft="@+id/btn_b3"
    android:background="@drawable/blank" />

<Button
    android:id="@+id/btn_c7"
    android:layout_width="27dp"
    android:layout_height="25dp"
    android:layout_alignBaseline="@+id/btn_c8"
    android:layout_alignBottom="@+id/btn_c8"
    android:layout_alignLeft="@+id/btn_c3"
    android:background="@drawable/blank"
    android:focusable="true" />

<Button
    android:id="@+id/btn_b7"
    android:layout_width="27dp"
    android:layout_height="25dp"
    android:layout_alignBottom="@+id/btn_b8"
    android:layout_alignLeft="@+id/btn_c7"
    android:background="@drawable/blank" />

<Button
    android:id="@+id/btn_a6"
    android:layout_width="27dp"
    android:layout_height="25dp"
    android:layout_alignBaseline="@+id/btn_a7"
    android:layout_alignBottom="@+id/btn_a7"
    android:layout_alignLeft="@+id/btn_b7"
    android:background="@drawable/blank" />

<Button
    android:id="@+id/btn_c4"
    android:layout_width="27dp"
    android:layout_height="25dp"
    android:layout_alignBaseline="@+id/btn_c3"
    android:layout_alignBottom="@+id/btn_c3"
    android:layout_marginLeft="95dp"
    android:layout_toRightOf="@+id/btn_c3"
    android:background="@drawable/blank" />

<Button
    android:id="@+id/btn_c5"
    android:layout_width="27dp"
    android:layout_height="25dp"
    android:layout_alignBaseline="@+id/btn_c1"
    android:layout_alignBottom="@+id/btn_c1"
    android:layout_alignLeft="@+id/btn_c4"
    android:background="@drawable/blank" />

<Button
    android:id="@+id/btn_c6"
    android:layout_width="27dp"
    android:layout_height="25dp"
    android:layout_alignBaseline="@+id/btn_c7"
    android:layout_alignBottom="@+id/btn_c7"
    android:layout_alignLeft="@+id/btn_c5"
    android:background="@drawable/blank" />

<Button
    android:id="@+id/btn_b4"
    android:layout_width="27dp"
    android:layout_height="25dp"
    android:layout_alignBaseline="@+id/btn_b3"
    android:layout_alignBottom="@+id/btn_b3"
    android:layout_marginLeft="50dp"
    android:layout_toRightOf="@+id/btn_c4"
    android:background="@drawable/blank"
    android:paddingBottom="9dp" />

<Button
    android:id="@+id/btn_b5"
    android:layout_width="27dp"
    android:layout_height="25dp"
    android:layout_alignBaseline="@+id/btn_c5"
    android:layout_alignBottom="@+id/btn_c5"
    android:layout_alignLeft="@+id/btn_b4"
    android:background="@drawable/blank" />

<Button
    android:id="@+id/btn_b6"
    android:layout_width="27dp"
    android:layout_height="25dp"
    android:layout_alignBaseline="@+id/btn_b7"
    android:layout_alignBottom="@+id/btn_b7"
    android:layout_alignLeft="@+id/btn_b5"
    android:background="@drawable/blank" />

<Button
    android:id="@+id/btn_a3"
    android:layout_width="27dp"
    android:layout_height="25dp"
    android:layout_above="@+id/btn_b2"
    android:layout_alignParentRight="true"
    android:layout_marginRight="13dp"
    android:background="@drawable/blank" />

<Button
    android:id="@+id/btn_a4"
    android:layout_width="27dp"
    android:layout_height="25dp"
    android:layout_alignBaseline="@+id/btn_b5"
    android:layout_alignBottom="@+id/btn_b5"
    android:layout_alignLeft="@+id/btn_a3"
    android:background="@drawable/blank" />

<Button
    android:id="@+id/btn_a5"
    android:layout_width="27dp"
    android:layout_height="25dp"
    android:layout_alignBaseline="@+id/btn_a6"
    android:layout_alignBottom="@+id/btn_a6"
    android:layout_alignLeft="@+id/btn_a4"
    android:background="@drawable/blank" />

<Button
    android:id="@+id/btn_a2"
    android:layout_width="27dp"
    android:layout_height="25dp"
    android:layout_above="@+id/btn_b2"
    android:layout_marginLeft="86dp"
    android:layout_toRightOf="@+id/btn_c2"
    android:background="@drawable/blank" />

<TextView
    android:id="@+id/infoDisplay"
    android:layout_width="175dp"
    android:layout_height="wrap_content"
    android:layout_alignTop="@+id/btn_b1"
    android:layout_toLeftOf="@+id/btn_c5"
    android:gravity="center"
    android:text="@string/text"
    android:textAppearance="?android:attr/textAppearanceLarge"
    android:textColor="#000000" />

<Button
    android:id="@+id/btn_a1"
    android:layout_width="27dp"
    android:layout_height="25dp"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true"
    android:layout_marginLeft="12dp"
    android:layout_marginTop="63dp"
    android:background="@drawable/blank" />

</RelativeLayout>`

输出是 http://i.imgur.com/2tqrRXe.png?1

问题:您可以清楚地看到圈子上没有显示按钮。

注意:我现在不想为此目的使用任何游戏引擎。我想在日食中开发这个游戏。

任何建议我如何将按钮完全放在圆圈上。提前谢谢。

2 个答案:

答案 0 :(得分:0)

如果在不保留AR的情况下在两个维度上拉伸背景图像,则可以使用LinearLayout并通过为其分配layout_weight和隐藏填充视图来排列按钮。
但这可能非常繁琐,而且计算代码中的所有位置可能会更好。

答案 1 :(得分:0)

您还可以对relativeLayout的layout_height和layout_width进行硬编码。它的背景图片将自动调整为该布局大小。应该适用于每种显示尺寸。