与xml图形布局相比,模拟器上的按钮位置不正确

时间:2014-11-12 09:07:46

标签: android xml android-layout button

所以,我试图在正确的位置获得四个按钮,但在模拟器上按钮都搞砸了。我在模拟器上使用与xml布局相同的设备。

XML图形布局

http://i.imgur.com/TvngX9j.png

模拟器布局

http://i.imgur.com/10ybR6K.png

XML代码

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:background="@drawable/mainmenu" >

<Button
    android:id="@+id/splay"
    android:layout_width="195dp"
    android:layout_height="64dp"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="256dp"
    android:text="" />
<Button
    android:id="@+id/mplay"
    android:layout_width="195dp"
    android:layout_height="64dp"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="322dp"
    android:text="" />
<Button
    android:id="@+id/menustat"
    android:layout_width="195dp"
    android:layout_height="64dp"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="389dp"
    android:text="" />
<Button
    android:id="@+id/menuset"
    android:layout_width="195dp"
    android:layout_height="64dp"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="455dp"
    android:text="" />

</RelativeLayout>

知道为什么会这样吗?提前谢谢。

4 个答案:

答案 0 :(得分:1)

您没有正确使用这些按钮。

为按钮提供所需的背景和文字。目前,您的按钮位于RelativeLayout的背景中。

答案 1 :(得分:0)

我相信“单人游戏”,“乘数”等是你背景图片的一部分。在模拟器中,由于您的高度和高度,您的按钮位置不能保持位置。 marginTop。

您应该使用单独的背景图像作为按钮而不是单个背景图像。这种方法并不好。

答案 2 :(得分:0)

你给保证金不合适所以试试这个:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:gravity="center">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:gravity="center"
        android:orientation="vertical">
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Gerfort's"
            android:textSize="24sp"/>
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Rock,Paper &amp; Scissros"
            android:textSize="16sp"
            android:layout_marginTop="10dp"/>
    </LinearLayout>
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginBottom="20dp"
        android:orientation="vertical"
        android:gravity="center">
        <Button
            android:id="@+id/splay"
            android:layout_width="195dp"
            android:layout_height="64dp"
            android:layout_centerHorizontal="true"
            android:layout_marginTop="10dp"
            android:gravity="center"
            android:text="SingelPlayer" />
        <Button
            android:id="@+id/mplay"
            android:layout_width="195dp"
            android:layout_height="64dp"
            android:layout_centerHorizontal="true"
            android:layout_marginTop="10dp"
            android:gravity="center"
            android:text="Multiplayer" />
        <Button
            android:id="@+id/menustat"
            android:layout_width="195dp"
            android:layout_height="64dp"
            android:layout_centerHorizontal="true"
            android:layout_marginTop="10dp"
            android:gravity="center"
            android:text="Statistics" />
        <Button
            android:id="@+id/menuset"
            android:layout_width="195dp"
            android:layout_height="64dp"
            android:layout_centerHorizontal="true"
            android:layout_marginTop="10dp"
            android:gravity="center"
            android:text="Settings" />
    </LinearLayout>
</LinearLayout>

答案 3 :(得分:0)

不在背景图像中绘制按钮,也许你可以在按钮中设置文本。您的代码将在不同的设备中变形。

另一方面,只需将每个按钮剪切成图像,然后将按钮设置为按钮。

无论如何,你应该首先从背景图像中删除你的按钮!