从URL显示图像

时间:2014-04-08 22:49:39

标签: android

我在显示图像时遇到了一些问题,我正在从URL中获取ImageView。根据我目前的代码,我什么都没有。这段代码有问题吗?

Drawable img = image.LoadImageFromWeb(icon);
imageView.setImageDrawable(img);

public static Drawable LoadImageFromWeb(String iconId) {
        try {
            String url = "http://ddragon.leagueoflegends.com/cdn/4.3.12/img/profileicon/" + iconId + ".png";
            InputStream is = (InputStream) new URL(url).getContent();
            Drawable icon = Drawable.createFromStream(is, "src name");
            return icon;
        } catch (Exception e) {
            return null;
        }
    }

1 个答案:

答案 0 :(得分:1)

尝试此功能

  private void downloadImage() 
  {
    Bitmap bitmap = null;
    try {
            URL urlImage = new 
   URL("http://ddragon.leagueoflegends.com/cdn/4.3.12/img/profileicon/" + iconId +
  ".png");
            HttpURLConnection connection = (HttpURLConnection)
    urlImage.openConnection();
            InputStream inputStream = connection.getInputStream();
            //****bitmap is your image*****
            bitmap = BitmapFactory.decodeStream(inputStream);
        } catch (MalformedURLException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
}

并使用asyncTask等到下载这样的图像

      private class Asyn_SaveData extends AsyncTask<Void, Void, Void> {     

    @Override
    protected Void doInBackground(Void... params) {
        //get the random string from prefs
        if (context != null)
            downloadImage();
        return null;
    }

    @Override
    protected void onPostExecute(Void result) {
        // TODO Auto-generated method stub
        super.onPostExecute(result);
        //do what you want after the image downloaded
    }
}

注意: AsyncTask必须是subClassed,并且在doInBackground完成其作业后,它会自动调用onPostExecute