在简单适配器中加载图像位图并在Listview Android

时间:2017-03-14 12:00:27

标签: android listview bitmap

我正在使用Android Activity,我有列表视图,并在json中从服务器动态加载数据,对于我正在获取位图的图像。

我遇到的问题是在Listview中加载位图图像如何在简单的适配器中集成图像

这是我的代码:

单行xml:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:padding="@dimen/activity_horizontal_margin">

<TextView
    android:id="@+id/statusp"
    android:text="status"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:paddingBottom="2dip"
    android:layout_marginLeft="82dp"
    android:textColor="@color/colorAccent"
    android:layout_below="@+id/dspecs" />

<TextView
    android:id="@+id/dspecs"
    android:text="speciality"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:paddingBottom="2dip"
    android:layout_marginLeft="82dp"
    android:textColor="@color/colorAccent"
    android:layout_below="@+id/usr_dname" />





<TextView
    android:id="@+id/usr_dname"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:paddingBottom="2dip"
    android:paddingTop="6dip"
    android:textColor="@color/colorPrimaryDark"
    android:textSize="20sp"
    android:text="Name"
    android:textStyle="bold"
    android:layout_alignParentTop="true"
    android:layout_toEndOf="@+id/imug_p1"
    android:layout_marginStart="41dp" />

<ImageView
    android:id="@+id/im2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginTop="30dp"
    android:layout_alignParentRight="true"
    android:src="@drawable/arrow"/>

<ImageView
    android:id="@+id/imug_p1"
    android:layout_width="40dp"
    android:layout_height="40dp"
    android:src="@drawable/hdoc"
    android:layout_above="@+id/statusp"
    android:layout_alignParentStart="true" />

这里我正在添加数据

 if(singleUser.has("picture")){

                    pic = singleUser.get("picture").toString();

                    byte[] decodedString = Base64.decode(pic, Base64.DEFAULT);
                    Bitmap decodedByte = BitmapFactory.decodeByteArray(decodedString, 0, decodedString.length);


                 Drawable did = new BitmapDrawable(getResources(), decodedByte);



                }




     HashMap<String, String> docs = new HashMap<>();

                        docs.put("name", key);

                        docs.put("speciality",speci);

                        docs.put("status", status);

                        docs.put("picture",did.toString()); ///here i am adding bitmap

                        contactList.add(docs);

这里是简单的适配器

  ListAdapter adapter = new SimpleAdapter(Users.this, contactList,R.layout.user_listitem,
                    new String[]{"picture","name","speciality" ,"status"},
                    new int[]{R.id.imug_p1,R.id.usr_dname,R.id.dspecs,R.id.statusp});
            usersList.setAdapter(adapter);
            ((BaseAdapter) adapter).notifyDataSetChanged();

但是列表视图中没有显示任何内容。

被修改

我已经将位图转换为drawable,即使这样我也看不到任何图像检查我的更新代码。

1 个答案:

答案 0 :(得分:0)

您需要创建自己的BaseAdapter子项适配器。这是唯一的解决方案