[英]How can I align a ImageView to the right edge of a Button?
我創建了一個簡單的布局,其中包含一個 Button、一個 TextView 和一個 ImageView(里面有一個問號)。
<Button
android:background="#f00"
android:textSize="25dp"
android:layout_width="200dp"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:text="Button"
android:id="@+id/button" />
<TextView
android:id="@+id/textViewmas"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@+id/button"
android:layout_alignLeft="@+id/button"
android:layout_alignStart="@+id/button"
android:text="title "
android:textSize="18dp" />
<ImageView
android:id="@+id/questionmark"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@id/textViewmas"
android:layout_alignTop="@+id/textViewmas"
android:layout_alignRight="@+id/button"
android:layout_alignEnd="@+id/button"
app:srcCompat="@drawable/questionmark"/>
我希望圖像的右邊緣(問號)與按鈕的右邊緣對齊。 另外頂部和底部應該在標題的 textView(相同高度)的頂部和底部對齊。
為什么圖像不在右邊緣對齊,而是在左邊緣對齊? 我注意到如果我增加標題文本大小(例如 30dp),問題就會消失,但我需要一個小的文本大小。
------編輯:圖像是否有最小尺寸,在該尺寸下語句不能正常工作?
將android:scaleType="fitEnd"
到您的ImageView
<Button
android:id="@+id/button"
android:layout_height="wrap_content"
android:layout_width="200dp"
android:textSize="25dp"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:background="#f00"
android:text="Button"/>
<TextView
android:id="@+id/textViewmas"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@+id/button"
android:layout_alignLeft="@+id/button"
android:text="title "
android:textSize="18dp" />
<ImageView
android:id="@+id/questionmark"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@id/textViewmas"
android:layout_alignTop="@+id/textViewmas"
android:layout_alignRight="@+id/button"
android:layout_alignEnd="@+id/button"
android:scaleType="fitEnd"
app:srcCompat="@mipmap/ic_launcher"/>
解釋
這是ImageView
在沒有android:layout_alignTop="@+id/textViewmas"
屬性的情況下的顯示方式
當您將layout_alignTop
屬性添加到ImageView
,它被壓縮到TextView
的高度,並且它包含的圖像被縮小。 默認情況下, ImageView
的scaleType
屬性顯示為centerInside
; 這會縮小圖像並將其與圖像視圖的中心對齊,從而在左側和右側增加一些空間。
解決方案是使用android:scaleType="fitEnd"
將縮小的圖像移動到圖像視圖的末尾
輸出
您可以使用:
android:layout_alignRight="@+id/button"
或者:
android:layout_alignEnd="@+id/button"
然后你可以從左邊添加一些邊距。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.