Android - 动态图片加载麻烦

时间:2010-10-25 13:06:42

标签: android download inputstream image

我目前正在尝试创建从互联网上加载的图片库。

我正在使用标准的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);
    }

}

问题是,相当随机但是大约8次中的8次,我在我的日志中得到以下消息“10-25 14:58:18.764:DEBUG / skia(11294):--- decoder-&gt; decode返回false“,然后我的drawable为null。

我说我的代码存在问题,但为什么它有时会运行?或不?

我试图将WebViews放在我的图库中,只加载图片网址,并且下载图片时效果非常好,而且显示速度非常快(但是显示非常混乱(速度慢且无响应,图像不居中)在屏幕上...)。

我该怎么办?

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

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

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

非常感谢!

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

1 个答案:

答案 0 :(得分:1)

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