将图像定位在形状的右下角
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
。
并设置头像ImageView
为gravity="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
我正在尝试创建如下所示的内容:
然而,它目前是这样的(缩小了一点):
我不知道怎么把头像放在右下角。
这是我的布局:
<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
。
并设置头像ImageView
为gravity="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