我的应用正在显示图片网址。如何下载图像以便它可以显示在我的应用程序上

时间:2017-09-17 09:23:34

标签: java android api flickr

//我的适配器。 我正在尝试在下面的代码中找到一种实现Picasso的方法,或者是为了显示图像的活动。我也使用gridview来显示图像。下面的getImage()是负责获取url

的方法
        public CategoryViewHolder(View itemView) {
            super(itemView);
            ButterKnife.bind(this, itemView);
            mContext = itemView.getContext();
        }

        public void bindCategory(Category category) {
            mNameTextView.setText(category.getImage());
        }
    }
}

3 个答案:

答案 0 :(得分:1)

您可以从网址获取InputStream,然后解码位图以在ImageView中显示。

try {
    URL url = new URL(getImage());
    Bitmap bitmap = BitmapFactory.decodeStream(url.openStream());
    imageView.setImageBitmap(bitmap);
} catch (IOException e) {
    e.printStackTrace();
}

我建议您使用Picasso库,使用它可以使用以下代码轻松加载图像:

Picasso.with(this/*context*/).load(getImage()).into(imageView);

修改

如果您希望直接从该方法获取图像,请点击此处:

public Bitmap getImage(){
    String imageUrl  = "https://farm"+getFarm()+".staticflickr.com/"+getServer()
        +"/"+getId()+"_"+getSecret()+"_m.jpg";
    try {
        URL url = new URL(imageUrl);
        return BitmapFactory.decodeStream(url.openStream());
    } catch (IOException e) {
        e.printStackTrace();
        return null;
    }
}

答案 1 :(得分:0)

您可以在Webview中打开图像。确保您的Activity Xml中有一个WebView组件也声明您的Class(全局变量)之外的WebView变量以便您可以在函数内使用它。

public void getImage(){
        String imageUrl  = "https://farm"+getFarm()+".staticflickr.com/"+getServer()+"/"+getId()+"_"+getSecret()+"_m.jpg";
        mWebView.loadDataWithBaseURL(null, "<html><head></head><body><table style=\"width:100%; height:100%;\"><tr><td style=\"vertical-align:middle;\"><img src=\"" + imageUrl + "\"></td></tr></table></body></html>", "html/css", "utf-8", null);

    }

答案 2 :(得分:0)

您可以使用自定义库

查看这样的图像
Picasso.with(this).load(getImage()).into(imageView);

Glide.with(this).load(getImage()).into(imageView);

并下载图片:

public void DownloadImageFromPath(String path){
            InputStream in =null;
            Bitmap bmp=null;
             ImageView iv = (ImageView)findViewById(R.id.img1);
             int responseCode = -1;
            try{

                 URL url = new URL(path);//"http://192.xx.xx.xx/mypath/img1.jpg
                 HttpURLConnection con = (HttpURLConnection)url.openConnection();
                 con.setDoInput(true);
                 con.connect();
                 responseCode = con.getResponseCode();
                 if(responseCode == HttpURLConnection.HTTP_OK)
                 {
                     //download 
                     in = con.getInputStream();
                     bmp = BitmapFactory.decodeStream(in);
                     in.close();
                     iv.setImageBitmap(bmp);
                 }

            }
            catch(Exception ex){
                Log.e("Exception",ex.toString());
            }
        }