在使用自定义适配器的ListView中,ImageView根本没有显示

时间:2017-07-19 22:22:13

标签: android listview imageview

我想编写一个简单的应用程序,它从数据库中获取信息并将其显示在行中。 textview,复选框和ImageView。 一切正常,但它只是忽略了Imageview。它有什么特别之处吗?

我尝试使用只有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;
    }

2 个答案:

答案 0 :(得分:0)

由于我没有足够的声誉来做评论,我会这样做。

你确定bmp中有实际数据吗?

修改 在另一篇文章中,我读到在设置它时可以帮助缩放位图

raidicon.setImageBitmap(Bitmap.createScaledBitmap(bmp,120,120,false));

答案 1 :(得分:0)

我通过代码设置资源解决了这个问题。 (.setImageResource ...) 谢谢大家:)