簡體   English   中英

如何將 ImageView 與按鈕的右邊緣對齊?

[英]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的高度,並且它包含的圖像被縮小。 默認情況下, ImageViewscaleType屬性顯示為centerInside 這會縮小圖像並將其與圖像視圖的中心對齊,從而在左側和右側增加一些空間。

解決方案是使用android:scaleType="fitEnd"將縮小的圖像移動到圖像視圖的末尾

輸出

在此處輸入圖片說明

您可以使用:

android:layout_alignRight="@+id/button"

或者:

android:layout_alignEnd="@+id/button"

然后你可以從左邊添加一些邊距。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM