Android ListView SimpleAdapter支持Bitmap类型图片显示详解手机开发

// 处理simpleAdapter中包括bitmap类型 
        adapter.setViewBinder(new ViewBinder() { 
            public boolean setViewValue(View view, Object data, 
                    String textRepresentation) { 
                if (view instanceof ImageView && data instanceof Bitmap) { 
                    ImageView image = (ImageView) view; 
                    image.setImageBitmap((Bitmap) data); 
                    return true; 
                } 
                return false; 
            } 
        });

完整示例如下:

listData = this.GetPersonalData(); 
        adapter = new SimpleAdapter(this, listData, 
                R.layout.personal_list_item, new String[] { "label", "image", 
                        "arrows", "value" }, new int[] { R.id.personal_label, 
                        R.id.personal_img, R.id.list_arrows, 
                        R.id.personal_value }); 
 
        // 处理simpleAdapter中包括bitmap类型 
        adapter.setViewBinder(new ViewBinder() { 
            public boolean setViewValue(View view, Object data, 
                    String textRepresentation) { 
                if (view instanceof ImageView && data instanceof Bitmap) { 
                    ImageView image = (ImageView) view; 
                    image.setImageBitmap((Bitmap) data); 
                    return true; 
                } 
                return false; 
            } 
        }); 
 
        mainListView.setAdapter(adapter);
private List<Map<String, Object>> GetPersonalData() { 
        List<Map<String, Object>> list = new ArrayList<Map<String, Object>>(); 
 
        Map<String, Object> map = new HashMap<String, Object>(); 
 
        map.put("label", 
                this.getResources().getString(R.string.personal_headphoto)); 
        map.put("image", 
                preferences.getString("photo", null) == null ? R.drawable.head 
                        : this.StringToBitMap(preferences.getString("photo", 
                                null)));//经过上述view.setViewBing之后在put值的时候就可以直接加入BitMap类型图片进行显示了 
        map.put("arrows", R.drawable.arrows_right); 
        list.add(map); 
 
        map = new HashMap<String, Object>(); 
        map.put("label", this.getResources().getString(R.string.personal_name)); 
        map.put("value", "APP测试"); 
        list.add(map); 
 
        map = new HashMap<String, Object>(); 
        map.put("label", 
                this.getResources().getString(R.string.personal_username)); 
        map.put("value", "xxx"); 
        list.add(map); 
 
        map = new HashMap<String, Object>(); 
        map.put("label", 
                this.getResources().getString(R.string.personal_disease)); 
        map.put("value", preferences.getString("disease", "无")); 
        map.put("arrows", R.drawable.arrows_right); 
        list.add(map); 
        return list; 
    }

注:着色部分意思为图片资源我用的base64所以这里边我转化了一下。

原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/tech/app/6163.html

(0)
上一篇 2021年7月17日 00:42
下一篇 2021年7月17日 00:42

相关推荐

发表回复

登录后才能评论