【发布时间】:2010-09-07 09:57:16
【问题描述】:
我想从远程服务器下载图像并将其用作资源。 可能吗 ? 我该怎么做?
【问题讨论】:
标签: android image resources download
我想从远程服务器下载图像并将其用作资源。 可能吗 ? 我该怎么做?
【问题讨论】:
标签: android image resources download
有可能吗?
您可以下载图像。不过,它不会是“资源”。资源打包在 APK 中,不能在运行时修改或添加。
【讨论】:
我就是这样做的:
private class ImgDownload extends AsyncTask {
private String requestUrl;
private ImageView view;
private Bitmap pic;
private ImgDownload(String requestUrl, ImageView view) {
this.requestUrl = requestUrl;
this.view = view;
}
@Override
protected Object doInBackground(Object... objects) {
try {
URL url = new URL(requestUrl);
URLConnection conn = url.openConnection();
pic = BitmapFactory.decodeStream(conn.getInputStream());
} catch (Exception ex) {
}
return null;
}
@Override
protected void onPostExecute(Object o) {
view.setImageBitmap(pic);
}
}
【讨论】:
是的,您不能将其作为资源文件下载。您可以下载图像并将其存储在您的 SDCard 或数据库中,然后从那里加载...
要查看如何将图像下载到 SDCard,请参阅此链接
http://snippets.dzone.com/posts/show/8685#related
您以后可以像这样从您的 SDCard 加载它
http://android-er.blogspot.com/2010/01/how-to-display-jpg-in-sdcard-on.html
这是您从数据库中存储和检索图像的方式
http://www.helloandroid.com/tutorials/store-imagesfiles-database
【讨论】:
Android Group 的工程师 Gilles Debunne 在博文Multithreading For Performance 中讨论并解决了这个问题。
它在内部已经使用了AsyncTask。由于它是为 Android 制作的,因此可以下载图像并将其直接设置为 ImageView,使用以下两行代码:
ImageDownloader imageDownloader = new ImageDownloader();
imageDownloader.download(url, imageView);
ImageDownloader 类可以在链接的repository 中找到。
【讨论】: