相对布局中图像按钮的奇怪行为

Strange behavior with image button in a relative layout

我遇到了一些 ImageButtons 在相对布局中对齐的奇怪行为。 我有三个图像按钮,它们一起组成一个圆圈。 以下是 Android Studio 中的预览

在 Android 工作室和模拟器中,一切都运行良好,适用于各种屏幕分辨率。 但是当我在物理设备上测试时,结果不同而且不好。 以下是结果:

如您所见,按钮 "add" 水平拉伸,但我不明白为什么... 图像具有相同的尺寸 200x200 像素,上面的是 400x200 像素 下面是布局的代码,请帮帮我!

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/white"
android:backgroundTint="#00FFFFFF"
android:backgroundTintMode="add"
android:padding="0dp"
tools:context=".dashboard">


<TextView
    android:id="@+id/nome"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginStart="5sp"
    android:text="@string/utente"
    android:textSize="18sp"
    android:textStyle="bold" />

<TextView
    android:id="@+id/textView2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@id/nome"
    android:layout_marginStart="5sp"
    android:gravity="center"
    android:text="@string/pazientiInCoda"
    android:textSize="18sp"
    android:textStyle="italic" />

<TextView
    android:id="@+id/txtCoda"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@id/nome"
    android:layout_centerHorizontal="true"
    android:layout_marginStart="5dp"
    android:layout_toEndOf="@id/textView2"
    android:gravity="center"
    android:text="0"
    android:textAlignment="center"
    android:textColor="@color/colorAccent"
    android:textIsSelectable="false"
    android:textSize="18sp"
    android:textStyle="italic" />

<RelativeLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerInParent="true"
    android:padding="0dp"
    >

    <!--   divano   -->
    <ImageButton
        android:id="@+id/btnSala"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:onClick="vaiInSala"
        android:padding="0dp"
        android:scaleType="fitXY"
        android:src="@drawable/btncoda_green"
        android:contentDescription="@string/sala"
         />

    <RelativeLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@id/btnSala"
        android:layout_centerHorizontal="true">
        <!--   add   -->
        <ImageButton
            android:id="@+id/button"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:contentDescription="@string/addToCue"
            android:onClick="scanQR"
            android:padding="0dp"
            android:scaleType="fitXY"
            android:src="@drawable/btnaddcoda_green"
             />

        <!--   msg   -->
        <ImageButton
            android:id="@+id/btnDoc"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_toEndOf="@id/button"
            android:onClick="vaiAiDocumenti"
            android:padding="0dp"
            android:scaleType="fitXY"
            android:src="@drawable/btnmsg_green"
            android:contentDescription="@string/messaggi"
             />
    </RelativeLayout>
</RelativeLayout>

替换 LinearLayout 中的两个 ImageButton,这样你就可以将它们分别分配一半的屏幕(查看 android:layout_weightandroid:weightSum):

<LinearLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@id/btnSala"
    android:orientation="horizontal"
    android:weightSum="2">
    <!--   add   -->
    <ImageButton
        android:id="@+id/button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:contentDescription="@string/addToCue"
        android:onClick="scanQR"
        android:padding="0dp"
        android:scaleType="fitXY"
        android:src="@drawable/btnaddcoda_green"
        android:layout_weight="1" />

    <!--   msg   -->
    <ImageButton
        android:id="@+id/btnDoc"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_toEndOf="@id/button"
        android:onClick="vaiAiDocumenti"
        android:padding="0dp"
        android:scaleType="fitXY"
        android:src="@drawable/btnmsg_green"
        android:contentDescription="@string/messaggi"
        android:layout_weight="1"/>
</LinearLayout>