ImageView在使用自定义适配器的ListView中完全不显示
问题描述:
我想编写一个简单的应用程序,它从数据库获取信息并将其显示在行中。一个textview,一个复选框和一个ImageView。 一切工作正常,但它只是忽略Imageview。有什么特别的吗?ImageView在使用自定义适配器的ListView中完全不显示
我试图用一个完全空的布局,只有imageview。仍然只是创建一个空的空间。我尝试使用股票android图标或其他图像,什么都没有。尽管在空白布局中使用颜色作为imageview的背景似乎会创建一个彩色方形区域。
有什么想法?
谢谢你的时间。
- 编辑
行布局代码
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/item_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="TextView"
android:textColor="@color/colorPrimaryDark"
android:textSize="24sp"
android:layout_marginLeft="11dp"
android:layout_marginStart="11dp"
android:layout_alignTop="@+id/item_icon"
android:layout_toRightOf="@+id/item_icon"
android:layout_toEndOf="@+id/item_icon"/>
<TextView
android:id="@+id/item_id"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="TextView"
android:layout_alignBottom="@+id/item_icon"
android:layout_alignLeft="@+id/item_name"
android:layout_alignStart="@+id/item_name"/>
<CheckBox
android:id="@+id/item_status"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="65dp"
android:layout_marginEnd="65dp"
android:layout_alignBottom="@+id/item_id"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true"/>
<ImageView
android:id="@+id/item_icon"
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true"
android:layout_marginLeft="30dp"
android:layout_marginStart="30dp"
android:layout_marginTop="32dp"
app:srcCompat="@mipmap/ic_launcher_round"/>
</RelativeLayout>
- 这是我的适配器代码
public View getView(int position, View view, ViewGroup viewGroup) {
View v=View.inflate(context,R.layout.item_layout,null);
TextView raidname=(TextView)v.findViewById(R.id.item_name);
TextView raidid=(TextView)v.findViewById(R.id.item_id);
ImageView raidicon=(ImageView)v.findViewById(R.id.item_icon);
CheckBox status=(CheckBox)v.findViewById(R.id.item_status);
raidname.setText(Raidlist.get(position).r_name());
raidid.setText(String.valueOf(Raidlist.get(position).r_id()));
if(Raidlist.get(position).r_status().equals("alive"))
{
status.setChecked(true);
}
try
{
URL urlConnection = new URL(Raidlist.get(position).r_image());
HttpURLConnection connection = (HttpURLConnection) urlConnection.openConnection();
connection.setDoInput(true);
InputStream input = connection.getInputStream();
Bitmap bmp = BitmapFactory.decodeStream(input);
raidicon.setImageBitmap(bmp);
}
catch(Exception ex)
{
//...
}
v.setTag(Raidlist.get(position).r_id());
return v;
}
答
,因为我没有足够的声誉做一个评论我会做这条路。
你确定bmp里面有实际数据吗?
编辑: 在另一个帖子我看了,它可以帮助比例缩放位图,同时设置它
raidicon.setImageBitmap(Bitmap.createScaledBitmap(BMP,120,120,FALSE));
答
我已通过代码设置资源解决了该问题。 (.setImageResource ...) 谢谢大家:)
那么我的问题开始与ImageView它自..甚至没有股票图标或res目录中的图像正在显示。但是他们在主要活动中相当不错。和no,scaledBitmap方法不起作用:/ ..我感谢您的评论,无论名誉。毕竟我刚开始学习:) –