相对布局中图像按钮的奇怪行为
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_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>
我遇到了一些 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_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>