在相对布局中某些ImageButton对齐时,我遇到了奇怪的行为。 我有三个图像按钮,它们共同组成一个圆圈。 以下是Android Studio中的预览
在每种屏幕分辨率下,一切都可以在Android Studio和模拟器中正常运行。 但是当我在物理设备上进行测试时,结果会有所不同,而且效果不佳。 结果如下:
如您所见,“添加”按钮在水平方向延伸,但是我不明白为什么... 图片具有相同的尺寸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>
答案 0 :(得分:2)
将两个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>