【问题标题】:android json picture parsingandroid json图片解析
【发布时间】:2013-03-23 10:34:45
【问题描述】:

你好,我正在尝试学习 json 解析并我解决了一些问题,但我有问题我可以在我的列表视图中获取信息,但我无法拍照,我的日志说

我的代码在这里我更改网址和一些字符串How to parse Sub JSONArray and display image?

请帮助我,谢谢....

04-02 07:59:27.767: W/System.err(1737): java.net.MalformedURLException: Protocol not found: WOW1079.jpg
04-02 07:59:27.815: W/System.err(1737):     at java.net.URL.<init>(URL.java:178)
04-02 07:59:27.945: W/System.err(1737):     at java.net.URL.<init>(URL.java:127)
04-02 07:59:28.095: W/System.err(1737):     at com.example.benm.DownloadImageTask.getBitmap(DownloadImageTask.java:41)
04-02 07:59:28.315: W/System.err(1737):     at com.example.benm.DownloadImageTask.doInBackground(DownloadImageTask.java:34)
04-02 07:59:28.465: W/System.err(1737):     at com.example.benm.DownloadImageTask.doInBackground(DownloadImageTask.java:1)
04-02 07:59:28.695: W/System.err(1737):     at android.os.AsyncTask$2.call(AsyncTask.java:264)
04-02 07:59:28.875: W/System.err(1737):     at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
04-02 07:59:28.885: W/System.err(1737):     at java.util.concurrent.FutureTask.run(FutureTask.java:137)
04-02 07:59:28.895: W/System.err(1737):     at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:208)
04-02 07:59:28.907: W/System.err(1737):     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
04-02 07:59:28.915: W/System.err(1737):     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
04-02 07:59:28.925: W/System.err(1737):     at java.lang.Thread.run(Thread.java:856)
04-02 07:59:28.995: W/System.err(1737): java.net.MalformedURLException: Protocol not found: WOW749.jpg
04-02 07:59:29.036: W/System.err(1737):     at java.net.URL.<init>(URL.java:178)
04-02 07:59:29.045: W/System.err(1737):     at java.net.URL.<init>(URL.java:127)
04-02 07:59:29.055: W/System.err(1737):     at com.example.benm.DownloadImageTask.getBitmap(DownloadImageTask.java:41)
04-02 07:59:29.066: W/System.err(1737):     at com.example.benm.DownloadImageTask.doInBackground(DownloadImageTask.java:34)
04-02 07:59:29.095: W/System.err(1737):     at com.example.benm.DownloadImageTask.doInBackground(DownloadImageTask.java:1)
04-02 07:59:29.155: W/System.err(1737):     at android.os.AsyncTask$2.call(AsyncTask.java:264)
04-02 07:59:29.165: W/System.err(1737):     at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
04-02 07:59:29.175: W/System.err(1737):     at java.util.concurrent.FutureTask.run(FutureTask.java:137)
04-02 07:59:29.185: W/System.err(1737):     at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:208)

here is my code

公共类 DownloadImageTask 扩展 AsyncTask {

private String mUrl;
private ImageView mImageView = null;

public DownloadImageTask(String Url, ImageView imageView) {

    mUrl = Url;
    this.mImageView = imageView;
}

protected void onPostExecute(Bitmap result) {
    super.onPostExecute(result);
    if (result != null) {
        mImageView.setImageBitmap(result);
    }
}

protected Bitmap doInBackground(Void... params) {

    Bitmap bitmap = getBitmap(mUrl);
    return bitmap;
}

public Bitmap getBitmap(String imageUrl) {
    Bitmap mBitmap = null;
    try {
        URL url = new URL(imageUrl);
        HttpURLConnection conn = (HttpURLConnection) url.openConnection();
        InputStream is = conn.getInputStream();
        mBitmap = BitmapFactory.decodeStream(is);

    } catch (MalformedURLException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }

    return mBitmap;
}

}

【问题讨论】:

  • 你分析过你的 LogCat 吗?异常是 MalformedURLException,找不到协议。
  • 是的,我分析了,但我想完全分享我的 LogCat,我不知道如何解决这个问题
  • 不是 json 问题,因为我获取其他信息,例如:仅餐厅名称无法获取图像
  • 在上面我分享了我用过的代码
  • 问题是你的 URL,异常告诉你 URL 格式错误(不正确)。可以发一下网址吗?

标签: android json image


【解决方案1】:

根据给定 logcat 中描述的 MalformedURLException,我可以说 URL 无效。只需检查图像 URL 值 WOW749.jpg 作为响应,您并没有获得完整的图像名称,而只是图像的名称。

所以我建议您在调用getBitmap() 函数时嵌入带有图像名称的webservice URL,它会解决您的问题。

【讨论】:

  • @EgemenDurmuş 检查更新的答案,将完整 URL 传递给 getBitmap() 函数。
  • 我是新人,你能举个小例子吗?
  • @EgemenDurmuş 是的,我可以,但如果您的网络服务响应是可读格式。
  • “餐厅”:[ {“Ix”:“1”,“ShortDesc”:“Ana Restoran”,“标题”:“STOLİSTA”,“PictureUrl_Small”:“WOW1079.jpg”,“评分”:“5”,
  • 这是我的 json,我可以获取标题短描述评级,但不能只获取图像
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-05
  • 1970-01-01
  • 2017-08-13
相关资源
最近更新 更多