Android 动态地将按钮放置在背景图像上有圆圈的位置
我是一名新的android开发者,正在尝试使用EclipseIDE在android中开发一款游戏。哪个有这样的游戏板 我只想把按钮放在有圆圈的地方。 我使用相对布局在xml中硬编码按钮位置,但由于屏幕大小不同,此解决方案不起作用Android 动态地将按钮放置在背景图像上有圆圈的位置,android,xml,android-layout,android-button,Android,Xml,Android Layout,Android Button,我是一名新的android开发者,正在尝试使用EclipseIDE在android中开发一款游戏。哪个有这样的游戏板 我只想把按钮放在有圆圈的地方。 我使用相对布局在xml中硬编码按钮位置,但由于屏幕大小不同,此解决方案不起作用 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:i
<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>`
`
出局是
问题:您可以清楚地看到按钮没有显示在圆圈上
注意:我现在不想为此使用任何游戏引擎。我想在eclipse中开发这个游戏
任何建议,我可以把按钮完全放在圆圈上。提前感谢。如果在两个维度上拉伸背景图像而不保留AR,则可以通过为按钮和不可见的填充视图指定布局权重来使用LinearLayout和排列按钮。
但这可能会让我感到非常乏味,最好是在代码中计算所有位置。您也可以硬编码相对位置的布局高度和布局宽度。它的背景图片将自动调整为该布局大小。那么对于每种显示尺寸都应该有效。您可能需要一些模式识别来实现这一点,如果你不知道圆的确切位置,他知道它们在哪里。是的,你在写,我知道圆在图像上的位置,但代码方面我不知道圆在哪里。谢谢你的建议,让我检查一下这个解决方案是否有效是的,按钮位置没有改变,但现在问题是板尺寸高度和宽度是硬编码的所以布局其他部分显示为黑色,我想在全屏上显示,请看图片。现在我该怎么做呢?先谢谢你,然后你应该用编程的方式来做。再次使用填充父对象的布局。然后在代码中,创建按钮并根据屏幕大小将其设置为正确的位置。看看这里:让我们假设我得到了屏幕宽度和屏幕高度,那么我将如何计算圆的位置?它们是按一定顺序排列的。。。你必须反复试验。例如,前3行位于(screenSizeX/3,screenSizeY/3),(2*screenSizeX/3,screenSizeY/3),(screenSizeX,screenSizeY/3),然后是其他2行。但如果它们不合适,你必须重新尝试