2017-09-17 1 views
0

// mon adaptateur. J'essaie de trouver un moyen d'implémenter Picasso dans le code ci-dessous ou l'activité pour qu'il affiche l'image. J'utilise aussi un gridview pour afficher les images. Le getImage() ci-dessous est la méthode responsable de l'obtention de l'URLMon application affiche l'URL de l'image. Comment puis-je télécharger l'image pour qu'elle puisse s'afficher sur mon application

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

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

Est-ce que vous voulez afficher l'image lors de l'appel de getImage()? –

+0

oui @LokkeshwaranJ – grace

Répondre

1

Vous pouvez obtenir le InputStream de l'URL et décoder un bitmap pour l'afficher dans un ImageView.

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

je vous recommande d'utiliser la bibliothèque Picasso, l'aide que vous pouvez facilement charger des images en utilisant le code suivant:

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

Edit:

Comme vous désiriez obtenir une image directement à partir du méthode, c'est ici:

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; 
    } 
} 
+0

y at-il un moyen de le faire en appelant getImage() – grace

+0

@grace vérifier la réponse éditée. Utilisez la fonction dans un 'AsyncTask' car cette fonction bloque le thread UI. –

+0

J'ai essayé d'utiliser cela mais cela n'a pas fonctionné. J'ai un adaptateur de tableau et je ne peux pas placer imageView à l'adaptateur de tableau – grace

0

Vous pouvez ouvrir l'image dans une Webview. Assurez-vous d'avoir un composant WebView dans votre Activity Xml. Déclarez également la variable WebView en dehors de votre classe (variable globale) afin que vous puissiez l'utiliser dans une fonction.

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); 

    } 
0

Vous pouvez voir l'image comme ça, en utilisant une coutume lib

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

ou

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

et le téléchargement de l'image:

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()); 
      } 
     }