【问题标题】:Async Image Download and storing in an array of ImageView异步图像下载并存储在 ImageView 数组中
【发布时间】:2011-06-24 18:32:19
【问题描述】:

我一直在寻找一种方法来异步下载多个图像并将它们存储在一个数组中。我有一些在 Lists 上使用的很好的例子,但我只想有一种下载这些的方法,以后再使用它们。 谢谢阅读。任何建议将不胜感激。

【问题讨论】:

    标签: android asynchronous png imageview android-asynctask


    【解决方案1】:

    试试这样的:

    public void onClick(View v) {
        new DownloadImageTask().execute("http://example.com/image.png");
    }
    
    private class DownloadImageTask extends AsyncTask<String, Void, Bitmap> {
         protected Bitmap doInBackground(String... urls) {
             return loadImageFromNetwork(urls[0]);
         }
    
         protected void onPostExecute(Bitmap result) {
             //Do something with bitmap eg:
             mImageView.setImageBitmap(result);
         }
     }
    
     private Bitmap loadImageFromNetwork(String url){
          try {
              Bitmap bitmap = BitmapFactory.decodeStream((InputStream)new URL(imageURL).getContent());
              return bitmap;
          } catch (Exception e) {
              e.printStackTrace();
        }
     }
    

    【讨论】:

    • 感谢您的及时回复,但我似乎收到错误消息:protected Bitmap doInBackground(String... urls) { return loadImageFromNetwork(urls[0]);它抱怨返回语句:“return loadImageFromNetwork(urls[0]);”
    • 因为后面你设置的代码:private void loadImageFromNetwork(String url)
    • 对不起,我已经编辑了代码来纠正这个问题,现在 loadImageFromNetwork 返回一个位图!哎呀!
    • 很抱歉,我在代码上玩了一点,它正在工作。谢谢!!!
    • 感谢这个极其简单的解决方案! A+++ 将再次实现
    【解决方案2】:

    你需要改变 新网址(图片网址)-> 新网址(网址)

    并将返回类型放在“e.printStackTrace();”下 (返回空;)

    我检查了它是否有效。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-01-04
      • 1970-01-01
      • 2016-12-20
      • 1970-01-01
      • 2018-08-03
      • 2019-02-17
      • 2017-12-24
      • 1970-01-01
      相关资源
      最近更新 更多