Android - 动态图片加载问题
我目前正在尝试创建从Internet加载的图片库。Android - 动态图片加载问题
我正在使用标准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返回false“,然后我的drawable为null。
我想说我的代码存在问题,但为什么它有时会工作?或不?
我试图把WebViews放入我的画廊,只加载图片的URL,它的工作非常好,并且快速地下载图片,但是显示效果相当混乱(速度较慢而且没有响应,图片不是以屏幕为中心......)。
我该怎么办?
我不明白为什么有时我的输入流不起作用。只是有时。如果尝试足够努力(就像循环一样),经过几次尝试后,它总是可以工作的,但这确实是一个非常难看的解决方案。
有没有办法用webviews下载图片并获取它们?我尝试过类似的东西(从webview获取getCache()或capturePicture()),但它没有显示任何东西...
任何想法?有任何想法吗?
非常感谢!
编辑: 呃..它每次都在工作,当我意识到inputStream的副本...但是为什么?
这可能是流位图处理中的另一个错误?有一个公开的问题(Issue 10627: Picture object not streaming out larger bitmaps),其中较大的位图不会写出到流中。这可能只是问题的另一半。