Mr_____He
请叫我Mr_He
采纳率0%
2016-10-31 03:25

子线程和Handler获取网络图片

子线程中获取了网络接口,然后传给了Handler,Handler里解析Json,获得的Json中有图片网络地址,怎样在Handler中取网络图片,求大神指点迷津!!!感激不尽

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

3条回答

  • qq_24827089 flk_123 5年前

    获取网络图片肯定要在子线程里获取,当然图片加载框架就行了,框架里面已经实现子线程下载图片的,只需要在回调中获取图片就行了

    点赞 1 评论 复制链接分享
  • a305644149 Darrenhang 5年前

    你在线程里面去解析数据,解析成功message返回CODE,解析失败返回另外一个CODE,然后用匿名对象去接收返回的CODE,然后处理对应的适配就可以了

    点赞 评论 复制链接分享
  • Mr_____He 请叫我Mr_He 5年前

    我是从网络获取的Json数据,然后再Handler里解析,解析中有图片网络地址,就是下面imgurl,但是之后不知道该怎么做了

     handler = new Handler() {
                private String imgurl;
    
                @Override
                public void handleMessage(Message msg) {
                    if (msg.what == 2) {
                        String jsondata = (String) msg.obj;
                        try {
                            mapList = new ArrayList<>();
                            JSONObject jsonObject = new JSONObject(jsondata);
                            String warning = jsonObject.getString("message");
                            int errorcode = jsonObject.getInt("errorcode");
                            if (errorcode == 1) {
                                Toast.makeText(getContext(), warning, Toast.LENGTH_SHORT).show();
                            }
                            JSONArray array = jsonObject.getJSONArray("data");
                            for (int i = 0; i < array.length(); i++) {
                                HashMap<String, Object> hashMap = new HashMap<>();
                                JSONObject object = array.getJSONObject(i);
                                String originalPrice = String.valueOf(object.getDouble("originalPrice"));
                                String price = String.valueOf(object.getDouble("price"));
                                String title = object.getString("goodsName");
                                String goodsCode = object.getString("goodsCode");
                                imgurl = object.getString("goodsImage");
    
                                hashMap.put("originalprice", originalPrice);
                                hashMap.put("price", price);
                                hashMap.put("title", title);
                                hashMap.put("goodsCode", goodsCode);
                                hashMap.put("imgurl", imgurl);
                                mapList.add(hashMap);
                            }
                            adapter = new XIangGuanAdapter(mapList, getContext());
                            listView.setAdapter(adapter);
                            listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
                                @Override
                                public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                                    Product_details.goodsCode = (String) mapList.get(position).get("goodsCode");
                                    getParentFragment().getFragmentManager().beginTransaction().addToBackStack(null).replace(R.id.fragment, new Product_details()).commit();
                                }
                            });
                        } catch (JSONException e) {
                            e.printStackTrace();
                        }
                    }
                }
            };
    
    点赞 评论 复制链接分享

相关推荐