【问题标题】:Android - Dynamic Picture loading troublesAndroid - 动态图片加载问题
【发布时间】:2010-10-25 13:06:41
【问题描述】:

我目前正在尝试创建一个从 Internet 加载的图片库。

我使用的是标准 Gallery 对象,带有自定义适配器和自定义 ImageView。一切正常,期待图片下载。

我正在使用异步任务来执行此操作(加载时显示缩略图)。

加载缩略图的效果非常好,但对于“大”图像(每张大约 50k)就不行了。

我正在使用它来加载图片:

private class DownloadImageTask extends AsyncTask<String,Void,Drawable>{

    @Override
    protected Drawable doInBackground(String... arg0) {
        URL url;
        InputStream is;
        Drawable d=null;
        try {
            url = new URL(arg0[0]);
            is = (InputStream) url.getContent();
            d = Drawable.createFromStream(is, "src");
            return d;
        } catch (MalformedURLException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
        return null;
    }

    protected void onPostExecute(Drawable result) {
        setImage(result);
    }

}

问题是,非常随机但大约 10 次中有 8 次在我的日志中收到以下消息“10-25 14:58:18.764: DEBUG/skia(11294): --- decoder->decode returned false ",然后我的drawable为空。

我会说我的代码有问题,但为什么有时它会工作?或不?

我尝试将 WebViews 放在我的画廊中,只加载图像 URL,它的工作非常好,下载图片的速度非常快,但是显示非常混乱(速度较慢且没有响应,并且图像未居中在屏幕上...)。

我该怎么办?

我不明白为什么有时我的输入流不起作用。只有某些时候。如果足够努力(比如使用循环),它总是在几次尝试后工作,但这确实是一个丑陋的解决方案。

有没有办法下载带有 webviews 的图片并在之后获取它们?我尝试了类似的方法(使用 webview 中的 getCache() 或 capturePicture()),但没有显示任何内容......

有什么想法吗?有什么想法吗?

非常感谢!

编辑: 嗯.. 每次当我意识到 inputStream 的副本时它都在工作......但是为什么呢?

【问题讨论】:

    标签: android download inputstream image


    【解决方案1】:

    这很可能是流位图处理中的另一个错误?存在一个未解决的问题 (Issue 10627: Picture object not streaming out larger bitmaps),较大的位图未写入流。而这可能只是问题的另一半。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-11-25
      • 1970-01-01
      • 2010-12-03
      • 2014-06-11
      • 2019-05-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多