0

xml で json 出力を解析する必要があります。解析は完了しましたが、画像が xml に表示されません。Androidログはこれを示しています-

12-22 14:26:34.472: I/System.out(6037): resolveUri failed on bad bitmap uri: "base_url"/sites/default/files/pictures/picture-6175010166.jpg

以下のコードに何か問題がありますか?

HashMap<String, String> listview = new HashMap<String, String>();
String title = "";
String teaser="";
String createdon = "";
String profile_image = "";      
try {
  title = jListview.getString("title");
  teaser = jListview.getString("teaser");
  createdon = jListview.getString("created");
  profile_image = jListview.getString("profile_image");
  listview.put("title", title);
  listview.put("teaser", teaser);
  listview.put("created", createdon);
  listview.put("profile_image", profile_image);
  //listview.put("profile_image", picture);
} catch (JSONException e) { 
  System.out.println( "Bad Error" + e.toString());
  e.printStackTrace();
} 
return listview;

これは、結果を表示する私の主なアクティビティ コードです。

         try{
        /** Getting the parsed data as a List construct */
            lists = listJsonParser.parse(obj);
            int imageCount = lists.size();
            }

        }catch(Exception e){
            Log.d("Exception Main",e.toString());
        }          

        /** Keys used in Hashmap */
        String[] from = { "title","teaser","created","profile_image"};

        /** Ids of views in listview_layout */
        int[] to = { R.id.title,R.id.teaser,R.id.createdon,R.id.list_image};

        /** Instantiating an adapter to store each items
        *  R.layout.listview_layout defines the layout of each item
        */
        SimpleAdapter adapter = new SimpleAdapter(getBaseContext(), countries, R.layout.home_layout, from, to);  

        return adapter;

            LoGcat:12-22 14:26:34.382: I/System.out(6037): resolveUri failed on bad bitmap uri: 
4

2 に答える 2

0

ImageViewImageView src を設定するためにDirect web url を設定することはできません。最初に ListView 用に拡張してカスタム アダプタを作成し、BaseAdaptergetView で最初に Url からイメージをビットマップとしてダウンロードし、次に ImageView に次のように設定する必要があります。

public class CustomAdapter extends BaseAdapter{

        @Override
        public View getView(int position, View convertView,
                                 ViewGroup parent) {

        if(convertView == null){
        LayoutInflater layoutInflater = (LayoutInflater) 
                                getSystemService(LAYOUT_INFLATER_SERVICE);
        convertView = layoutInflater.
                                     inflate(R.layout.layout_row, null);
         }

        Bitmap test = getbitpam(maptemp.get("profile_image"));
        imgview=(ImageView) convertView.findViewById(R.id.img_list);
        imgview.setImageBitmap(test);
        return convertView;
    }
}
//get image from server 
public  Bitmap getbitpam(String url) {
    Bitmap bitmap = null;
    InputStream in = null;
    BufferedOutputStream out = null;

    try {
        in = new BufferedInputStream(new URL(url).openStream(), IO_BUFFER_SIZE);

        final ByteArrayOutputStream dataStream = new ByteArrayOutputStream();
        out = new BufferedOutputStream(dataStream, IO_BUFFER_SIZE);
        copy(in, out);
        out.flush();

        final byte[] data = dataStream.toByteArray();
        BitmapFactory.Options options = new BitmapFactory.Options();
        //options.inSampleSize = 1;

        bitmap = BitmapFactory.decodeByteArray(data, 0, data.length,options);
    } catch (IOException e) {
        Log.e(TAG, "Could not load Bitmap from: " + url);
    } finally {
        closeStream(in);
        closeStream(out);
    }

    return bitmap;
}


}
于 2012-12-22T09:16:36.473 に答える
0

あなたのエラーは以下のように言います:

12-22 14:26:34.472: I/System.out(6037): resolveUri failed on bad bitmap uri: "base_url"/sites/default/files/pictures/picture-6175010166.jpg

画像をダウンロードしてから、ビットマップとして設定する必要があります。HEREは多くの例の 1 つです。

于 2012-12-22T09:17:30.343 に答える