代码之家  ›  专栏  ›  技术社区  ›  nonozor

安卓-如何下载图片并将其用作新资源?

  •  7
  • nonozor  · 技术社区  · 15 年前

    我想从远程服务器下载图像并将其用作资源。 有可能吗? 我该怎么做?

    4 回复  |  直到 15 年前
        1
  •  6
  •   DeRagan    15 年前

    是的,您不能将其作为资源文件下载..您可以将图像下载并存储在SD卡或数据库中,然后从那里加载。。。

    要查看如何将图像下载到SD卡,请参阅此链接

    http://snippets.dzone.com/posts/show/8685#related

    http://android-er.blogspot.com/2010/01/how-to-display-jpg-in-sdcard-on.html

    这就是如何从数据库中存储和检索图像

    http://www.helloandroid.com/tutorials/store-imagesfiles-database

        2
  •  8
  •   CommonsWare    15 年前

    有可能吗?

    您可以下载图像。不过,这将不是一种“资源”。资源打包在APK中,不能在运行时修改或添加到。

        3
  •  8
  •   uncle Lem    12 年前

    我就是这么做的:

    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);
        }
    }
    
        4
  •  4
  •   Konrad Reiche    13 年前

    Android小组的工程师Gilles Debunne在博客中讨论并解决了这个问题 Multithreading For Performance .

    它已经使用了 AsyncTask 内部。因为它是为Android制作的,所以它可以下载一个图像并将其直接设置为 ImageView 使用以下两行代码:

    ImageDownloader imageDownloader = new ImageDownloader();
    imageDownloader.download(url, imageView);
    

    ImageDownloader 类可以在链接的 repository .

    推荐文章