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