• 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所以这里边我转化了一下。

  • 相关阅读:
    App集成支付宝
    关于Objective-c和Java下DES加密保持一致的方式
    Android开发规范
    android 屏幕适配问题
    Android AES加密算法及其实现
    linux文件系统调用(1)---mount
    Java(Android)解析KML文件
    【Akka】在并发程序中使用Future
    函数指针问题,求解答
    android旋转动画的两种实现方式
  • 原文地址:https://www.cnblogs.com/gaolizhong/p/3852684.html
Copyright © 2020-2023  润新知