Comment utiliser Universal Image Loader

J'ai une exigence où j'ai besoin de charger des vignettes et un Text dans ListView qui est défini par l' Adapter personnalisé. Les vignettes doivent être stockées dans une mémoire cache, car je suis en train d'utiliser Universal Image Loader, mais je suis assez confus dans la mise en œuvre et comment l'utiliser selon mes besoins pour charger les images dans ListView à ListView de l' URL . Veuillez me suggérer des moyens pour une bonne mise en œuvre.

  • Google Chrome sur Android (et seulement Android) Ne permet pas Decimal avec le numéro de type et step = "any"
  • Pourquoi la taille de ma carte sur le périphérique diffère-t-elle de la taille de la mémoire APK ou Play?
  • Trier la collection par plusieurs champs dans Kotlin
  • Où GetChildFragmentManager est-il compatible avec la bibliothèque v13?
  • Comment afficher une fenêtre TYPE_SYSTEM_ALERT en plein écran?
  • Signature GoogleSignatureVerifier message non valide (google play services 9.0.0)
  • AudioTrack - tableau court sur distorsion de tableau d'octets à l'aide de jlayer (décodeur mp3 java)
  • Erreur «Autorisation refusée» lors de l'installation d'apk sur l'appareil
  • Testez si le fichier existe
  • Viewpager et FragmentPagerAdapter: suppression de la vue de page
  • La bannière de notification push Android ne s'affiche pas dans certains appareils
  • Fermeture ByteArrayOutputStream dans une application Android
  • 5 Solutions collect form web for “Comment utiliser Universal Image Loader”

    Écrivez la ligne de code ci-dessous dans la méthode getView () de votre carte, ici imageUrls [position] est un tableau d'Image Urls et holder.image est imageview.

     imageLoader.displayImage(imageUrls[position], holder.image, null); 

    Et inscrivez la ligne de code ci-dessous dans votre constructeur d'adaptateur.

     ImageLoader imageLoader=new ImageLoader(activity.getApplicationContext()); 

    Cela résoudra votre problème, et si vous avez des questions à ce sujet, dites-moi.

    Et voir le lien ci-dessous pour obtenir le code source complet de Universal Image Loader Example.

    Android – Universal Image Loader

    Dans l'oncreate de votre adaptateur () définissez

      ImageLoader imageLoader=new ImageLoader(activity.getApplicationContext()); 

    Et l'utiliser dans la méthode getView ():

     imageLoader.DisplayImage(//your image url, //your imageView); 

    Je vous suggérerais d'utiliser AQuery – (Android-Query) – un cadre de manipulation de l'UI très simple pour Android.

    AQuery vient en tant que bibliothèque, que vous devez inclure dans votre chemin de construction.

    Dans AQuery, vous pouvez télécharger, afficher (avec effets) et cacher l'image (à la fois en mémoire et sur disque) avec les lignes suivantes:

     AQuery aq = new AQuery(yourActivity.this); boolean memCache = true; boolean fileCache = true; aq.id(R.id.image1).image("http://www.example.com/image.jpg", memCache, fileCache); 

    AQuery traitera tous les processus de téléchargement de données et affichera des images sur votre ImageView que vous avez donné. Une fois que vous avez chargé l'image, elle sera mise en cache dans la mémoire (ou disque) en fonction des paramètres booléens memCache et fileCache . La prochaine fois, il va charger l'image à partir du cache mémoire ou du cache de fichiers.

    Pour plus d'informations et d'exemples, vous devez visiter le projet AQuery à http://code.google.com/p/android-query/

    Plus de code sur Image Loading – http://code.google.com/p/android-query/wiki/ImageLoading

    Cela vous aidera à charger imageurl à l'aide de l'imageloader universel, il donnera un statut pour que imageurl commence à être chargé, achevé ou échoué et la demande est également annulée. J'espère que cela vous aidera.

      public void ImageLoaderListener(String url){ imageLoader.loadImage(url,new ImageLoadingListener(){ @Override public void onLoadingStarted(String imageUri, View view) { Log.e("tag", "onLoadingStarted"); } @Override public void onLoadingFailed(String imageUri, View view, FailReason failReason) { Log.e("tag", "onLoadingFailed"); } @Override public void onLoadingComplete(String imageUri, View view, Bitmap loadedImage) { Log.e("tag", "onLoadingComplete"); imageView.setImageBitmap(loadedImage); } @Override public void onLoadingCancelled(String imageUri, View view) { Log.e("tag", "onLoadingCancelled"); } }); } 

    Si vous souhaitez mettre en cache l'image, ajoutez ces fonctions ci-dessous … Mais pour lancer sur créer, c'est très …

      ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(getApplicationContext()) .defaultDisplayImageOptions(DisplayImageOptions.createSimple()) .build(); imageLoader = imageLoader.getInstance(); if (!imageLoader.isInited()) { imageLoader.init(config); } defaultOptions = new DisplayImageOptions.Builder() .cacheInMemory(true) .cacheOnDisc(true) .build(); 

    Ensuite, vous ajouterez la fonction ImageLoadingListener () …

     public void ImageLoaderListener(String url){ imageLoader.loadImage(url, defaultOptions, new ImageLoadingListener() { 
     public class CategoryModel { String CatId; String CatName; String Image; String Price; Bitmap ImgSrc; CategoryAdapter Ma; public CategoryModel() { } public CategoryModel(String catid,String catname,String image,String price) { this.CatId = catid; this.CatName = catname; this.Image = image; this.Price = price; } public CategoryModel(String catname,String image,String price) { this.CatName = catname; this.Image = image; this.Price = price; } public void setCatId(String catid) { this.CatId =catid; } public String getCatId() { return this.CatId; } public void setCatName(String catname) { this.CatName=catname; } public String getCatName() { return this.CatName; } public void setImage(String image) { this.Image=image; } public String getImage() { return this.Image; } public void setPrice(String price) { this.Price=price; } public String getPrice() { return this.Price; } public Bitmap getImagesrc() { return this.ImgSrc; } public void setAdapter(CategoryAdapter adf) { this.Ma = adf; } public CategoryAdapter getAdapter() { return this.Ma; } public void LoadImage(CategoryAdapter adap) { this.Ma = adap; if(Image != null && !Image.equals("")) { new ImageLoader().execute(new String[]{ Image }); } } public static Bitmap getBitmapUrl(String src) { try { URL url = new URL(src); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setDoInput(true); connection.connect(); InputStream input = connection.getInputStream(); Bitmap mybitmap = BitmapFactory.decodeStream(input); connection.disconnect(); return mybitmap; } catch (Exception e) { return null; } } private class ImageLoader extends AsyncTask<String, String, Bitmap> { @Override protected void onPreExecute() { } @Override protected Bitmap doInBackground(String... params) { try { Bitmap b = getBitmapUrl(params[0]); return b; } catch (Exception e) { Log.e("Excep", e.toString()); return null; } } @Override protected void onPostExecute(Bitmap res) { if(res!=null) { ImgSrc = res; if(Ma!=null) { Ma.notifyDataSetChanged(); } } else { Log.e("Error", "Image not Loading"); } } } } 
    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.