2013-08-29 24 views
0

我是一名新的android开发人员,并试图在使用eclipse IDE的android中开发游戏。其中有这样的游戏板 http://i.imgur.com/bv149i8l.jpg?1动态地将按钮放置在背景图像上有一圈的地方

我只想将按钮放在有圆的地方。

我硬编码,因为不同尺寸屏幕的这一解决方案是行不通的

<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>` 

出认沽使用相对布局XML按钮位置,但 http://i.imgur.com/2tqrRXe.png?1

问题:你可以清楚地看到按钮不显示在圆圈上。

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

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

+0

如果您不确切知道圈子的位置,您可能需要一些模式识别功能。 – g00dy

+0

他知道他们在哪里。 –

+0

是的,你是写我知道在图像上的圈子的地方但代码明智,我不知道在哪里圈子。 –

回答

0

您也可以硬编码relativeLayout的layout_height和layout_width。这是背景图片将被自动化为该布局大小。应该适用于每种显示器尺寸。

+0

感谢您的建议,让我检查这个解决方案是否有效 –

+0

是的,它的工作按钮位置没有改变 但现在的问题是板的高度和宽度是硬编码,所以布局其他部分显示为黑色 我想全屏显示板友善地看到图像。 现在我应该怎么做,谢谢 [链接](http://i.imgur.com/APNvVeI.jpg) –

+0

然后你应该以编程方式做。再次使用您的布局与fill_parent。然后在代码中,创建按钮并根据screen_sizes设置它们以更正位置。看看这里:http://stackoverflow.com/questions/1016896/how-to-get-screen-dimensions – MojioMS

0

如果您在不保留AR的情况下在两个维上拉伸背景图像,则可以使用LinearLayout并通过将layout_weight分配给它们和不可见的填充视图来排列按钮。
但是,这可能是非常乏味的,并且可能会更好地计算代码中的所有位置。

相关问题