android - 如何使用SimpleAdapter在ListActivity客户项中显示来自网络的图片?

标签 android listactivity image

我创建一个扩展ListActivity的 Activity 我可以使用 SimpleAdapter 来显示 R.drawable.picture 但我想在 CustomerItem 中显示来自网络的图片 怎么办?

列出数据; 列表> plan_list;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.plan_list);
    plan_list = getPlanList();
    Plan_SimpleAdapter adapter = new Plan_SimpleAdapter(this, plan_list,
            R.layout.plan_item, new String[] { "Title", "miaoshu","img" }, new int[] {
                    R.id.textView1,R.id.miaoshu, R.id.plan_logo });
    setListAdapter(adapter);
}

// return plan list
private List<Map<String, Object>> getPlanList() {
    plan_list = new ArrayList<Map<String, Object>>(3);
    Map<String, Object> map = new HashMap<String, Object>();
    map.put("Title", "Android");
    map.put("miaoshu","M");
    map.put("img", "http://www.deakin.edu.au/conferences/icpads2008/images/deakin_logo.png");
    plan_list.add(map);

    map = new HashMap<String, Object>();
    map.put("Title", "Lenovo");
    map.put("miaoshu", "N");
    map.put("img", R.drawable.planlogo);
    plan_list.add(map);

    map = new HashMap<String, Object>();
    map.put("Title", "Droid");
    map.put("miaoshu", "O");
    map.put("img", R.drawable.planlogo);
    plan_list.add(map);
    return plan_list;
}

公共(public)类 Plan_SimpleAdapter 扩展 SimpleAdapter {

public Plan_SimpleAdapter(Context context,
        List<? extends Map<String, ?>> data, int resource, String[] from,
        int[] to) {
    super(context, data, resource, from, to);
    // TODO Auto-generated constructor stub
}

@Override
public void setViewImage(ImageView v, String value) {
    // TODO Auto-generated method stub
    try {
        URL url = new URL(value);
        URLConnection conn = url.openConnection();
        conn.connect();
        InputStream is = conn.getInputStream();
        Bitmap bm = BitmapFactory.decodeStream(is);
        v.setImageBitmap(bm);
    } catch (MalformedURLException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    super.setViewImage(v, value);
}

}

最佳答案

您可以在 SimpleAdapter 中重写以下方法:

    @Override
    public void setViewImage(ImageView v, String value) {
        super.setViewImage(v, value);
        URL url;
        try {
            url = new URL(value);
            URLConnection conn = url.openConnection();
            conn.connect();
            InputStream is = conn.getInputStream();
            Bitmap bm = BitmapFactory.decodeStream(is);
            v.setImageBitmap(bm);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

参数“字符串值”是数据集中的 URL。

关于android - 如何使用SimpleAdapter在ListActivity客户项中显示来自网络的图片?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5192128/

相关文章:

android - 为 ActionBarSherlock 导航选项卡设置自定义样式属性会破坏默认主题

mysql - SQL 查询从存储的表数据生成事件

java - 带有标题和 toast 的 ListActivity 选择了错误的列表项

java - setListAdapter 不在 ListActivity 中显示我的字符串数组

jquery - 平铺异步加载的图像 - 卡在 <img> 和背景 URL 之间

c++ - 显式设置图像压缩过滤器

java - 如何在 JPanel 中显示的矩形区域内的图像上写入文本

android - 屏幕锁定和解锁

java - 在SharedPreferenceChanged 上设置首选项值的格式

javascript - 在 React Native 中加载 ActivityIndi​​cator 时如何禁用触摸屏?