2013-08-29 23 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分配給它們和不可見的填充視圖來排列按鈕。
但是,這可能是非常乏味的,並且可能會更好地計算代碼中的所有位置。

相關問題