将图像定位在形状的右下角

Position image in bottom right of shape

我正在尝试创建如下所示的内容:

然而,它目前是这样的(缩小了一点):

我不知道怎么把头像放在右下角。

这是我的布局:

<RelativeLayout android:id="@+id/circle"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:background="@color/white"
    android:layout_marginRight="10dp">

    <TextView
        android:id="@+id/bg"
        android:layout_width="50dp"
        android:layout_height="50dp"
        android:layout_alignParentLeft="true"
        android:background="@drawable/bg" />

    <ImageView
        android:id="@+id/profile_picture"
        android:layout_width="18dp"
        android:layout_height="18dp"
        android:src="@drawable/avatar"/>

</RelativeLayout>

这是 bg 可绘制对象:

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <shape xmlns:android="http://schemas.android.com/apk/res/android"
            android:shape="oval">

            <solid android:color="#4a9ef7"/>
            <size android:width="50dp" android:height="50dp"/>
        </shape>
    </item>
</layer-list>

我应该改变什么?

使用 FrameLayout 而不是 RelativeLayout

并设置头像ImageViewgravity="right|bottom"

<RelativeLayout android:id="@+id/circle"
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_alignParentLeft="true"
android:background="@color/white"
android:layout_marginRight="10dp">

<TextView
    android:id="@+id/bg"
    android:layout_width="50dp"
    android:layout_height="50dp"
    android:layout_alignParentLeft="true"
    android:background="@drawable/bg" />

<ImageView
    android:id="@+id/profile_picture"
    android:layout_width="18dp"
    android:layout_height="18dp"
    android:layout_alignParentRight="true"
    android:layout_alignParentBottom="true"
    android:src="@drawable/avatar"/>

</RelativeLayout>

使用这个:

<ImageView
    android:id="@+id/profile_picture"
    android:layout_width="18dp"
    android:layout_height="18dp"
    android:scaleType="centerCrop"
    android:layout_alignRight="@+id/bg"
    android:layout_alignBottom="@+id/bg"
    android:src="@drawable/ic_launcher"/>

此处 alignRight 和 alignBottom 会将图像视图与背景的右下角对齐。您也可以避免使用图层列表,只使用可绘制的形状作为背景。

@user4368069 仅供参考:

android:layout_alignParentRight:如果为真,则使该视图的右边缘与父视图的右边缘匹配。容纳右边距。

android:layout_alignParentBottom:如果为真,则使该视图的底边与父视图的底边匹配。容纳下边距。

两者都是

boolean value, either "true" or "false"

并在您的 Imageview 中设置 android:adjustViewBounds="true" . 如需更多信息,请阅读 https://developer.android.com/reference/android/widget/ImageView.html