如何加载图像并使用JSON数据传递给布局?

时间:2014-03-30 08:05:56

标签: android json android-fragments hashmap simpleadapter

这是我的代码,我试图将图片传递给listview但是我收到了错误。 我怎么能通过图像?我应该先将它下载到本地内存然后发送到listview ??

  protected String doInBackground(String... args) {

    // Building Parameters
    List<NameValuePair> params = new ArrayList<NameValuePair>();
    // getting JSON string from URL
    JSONObject json = jParser.makeHttpRequest(url_all, "GET", params);

    if(json == null)
        System.out.println("NULL");
    else{
    // Check your log cat for JSON reponse
    Log.d("All Developers: ", json.toString());

    try {
        // Checking for SUCCESS TAG
        int status = json.getInt(TAG_STATUS);

        if (status == 1) {
            // products found
            // Getting Array of Products
            developers = json.getJSONArray(TAG_all);

            // looping through All Products
            for (int i = 0; i < developers.length(); i++) {
                JSONObject c = developers.getJSONObject(i);

                // Storing each json item in variable
                String id    = c.getString(TAG_UID);
                String name  = c.getString(TAG_NAME);
                String image = c.getString(TAG_IMAGE_PATH);


                // creating new HashMap
                HashMap<String, String> map = new HashMap<String, String>();

                // adding each child node to HashMap key => value
                map.put(TAG_UID, id);
                map.put(TAG_NAME, name);
                //map.put(TAG_IMAGE_PATH, image);

                // adding HashList to ArrayList
                developersList.add(map);
                //Iamge Download
            }
        } else {
            System.out.println("No Data");
        }
    } catch (JSONException e) {
        e.printStackTrace();
    }
    }

    return null;
}
protected void onPostExecute(String file_url) {
    // dismiss the dialog after getting all products
    pDialog.dismiss();
    // updating UI from Background Thread
    getActivity().runOnUiThread(new Runnable() {
        public void run() {
            /**
             * Updating parsed JSON data into ListView
             * */
            ListAdapter adapter = new SimpleAdapter(getActivity(),
                    developersList,R.layout.list_data, new String[] { TAG_UID,
                            TAG_NAME,TAG_IMAGE_PATH},
                    new int[] { R.id.uid, R.id.name,R.id.image });
            // updating listview
            lv.setAdapter(adapter);
        }
    });

 }
   }
 }

错误

03-30 13:34:03.475:E / BitmapFactory(22326):无法解码流:java.io.FileNotFoundException

1 个答案:

答案 0 :(得分:0)

你不必重新发明轮子 - 假设你有图像的网址,你可以使用nostra13 library for image loading它会为你做所有讨厌的工作人员(缓存处理下载\保存缩略图等。 。)它还有一个可以看到的exmaple项目,以便更好地理解如何使用它。