Странное поведение с кнопкой изображения в относительном макете - PullRequest
1 голос
/ 09 июля 2019

Я испытываю странное поведение с выравниванием некоторых кнопок ImageButtons в относительной компоновке.У меня есть три кнопки изображения, которые вместе составляют круг.ниже приводится предварительный просмотр в Android Studio Android studio preview

, все хорошо работает в Android Studio и в эмуляторе, с каждым разрешением экрана.но когда я тестирую на физическом устройстве, результаты разные и не хорошие.следующий результат: device result

, как вы можете видеть, кнопка «добавить» растянута по горизонтали, но я не могу понять, почему ... изображения имеют одинаковые размеры200x200 px, верхний - 400x200 px. Ниже приведен код макета, пожалуйста, помогите мне!

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

1 Ответ

2 голосов
/ 09 июля 2019

Замените два ImageButton в LinearLayout, чтобы вы могли выделить каждого из них на половину экрана (посмотрите на android:layout_weight и android: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>
...