Android Studio中RecyclerView联系人列表图片不显示问题排查
解决联系人列表中ImageView不显示的问题
嘿,我看了你给出的布局代码,这几个小问题应该就是图片不显示的根源,咱们来逐个修复:
1. 先解决布局位置与宽度的矛盾
你给ImageView设置了android:layout_width="match_parent",同时又加了android:layout_alignParentEnd="true"/android:layout_alignParentRight="true"——这就相当于让ImageView占满整个父容器宽度,还强制靠右侧对齐,要么直接把左边的姓名TextView完全盖住,要么图片被过度拉伸到变成空白(尤其是当图片尺寸很小时)。
把宽度改成和高度匹配的固定值,比如:
android:layout_width="50dp"
然后去掉靠右对齐的属性,换成让它靠左(或者在姓名TextView的左侧):
android:layout_alignParentLeft="true" <!-- 或者如果姓名TextView有ID,用这个更稳妥: --> android:layout_toLeftOf="@+id/tv_contact_name"
2. 确认图片资源已正确配置
这步很容易忘!你得给ImageView指定要显示的图片资源,要么在XML里直接添加:
android:src="@drawable/你的头像资源名"
要么在Java/Kotlin代码里通过img.setImageResource(R.drawable.xxx)来设置。要是没指定资源,ImageView自然是空的。
3. 添加ScaleType避免图片变形
如果图片显示后比例不对或者被截断,可以加上合适的ScaleType,比如让图片居中裁剪填充整个ImageView:
android:scaleType="centerCrop"
最后给你一个修正后的完整ImageView示例:
<ImageView android:id="@+id/img" android:layout_width="50dp" android:layout_height="50dp" android:layout_alignParentLeft="true" android:layout_alignParentTop="true" android:src="@drawable/contact_avatar" android:scaleType="centerCrop"/>
另外还要注意:因为你用了alignParent这类属性,父布局必须是RelativeLayout哦,如果是LinearLayout的话,就得改用android:layout_gravity或者调整控件的排列顺序啦。
内容的提问来源于stack exchange,提问作者sgman
相关产品推荐
相关产品推荐

