Image Loader universale Ricarica l'immagine dopo ogni rotolo
-
21-12-2019 - |
Domanda
Come da titolo, come posso interrompere l'uil di ricaricare l'immagine dopo ogni scorrimento in un elenco?
Ecco come implemendo il caricatore dell'immagine:
public class LatestAdapter extends BaseAdapter {
...
// UIL
private ImageLoaderConfiguration config;
private File cacheDir;
private DisplayImageOptions options;
private ImageLoader imageLoader = ImageLoader.getInstance();
public LatestAdapter(Context context, ArrayList<ItemListModel> items) {
this.arrItemList = items;
this.context = context;
if (android.os.Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED))
cacheDir=new File(android.os.Environment.getExternalStorageDirectory(),"JunkFolder");
else
cacheDir=context.getCacheDir();
if(!cacheDir.exists())
cacheDir.mkdirs();
options = new DisplayImageOptions.Builder()
.showImageOnLoading(R.drawable.placeholder)
.showImageOnFail(R.drawable.error)
.bitmapConfig(Bitmap.Config.RGB_565)
.imageScaleType(ImageScaleType.IN_SAMPLE_INT)
.build();
config = new ImageLoaderConfiguration.Builder(context)
.memoryCache(new WeakMemoryCache())
.denyCacheImageMultipleSizesInMemory()
.discCache(new UnlimitedDiscCache(cacheDir))
.threadPoolSize(5)
.defaultDisplayImageOptions(options)
.build();
imageLoader.init(config);
}
...
@Override
public View getView(int i, View view, ViewGroup viewGroup) {
...
imageLoader.displayImage(nm.getThumbnail().getImage100(), vh.tvThumbnail, options, new ImageLoadingListener() {
@Override
public void onLoadingStarted(String s, View view) {
}
@Override
public void onLoadingFailed(String s, View view, FailReason failReason) {
}
@Override
public void onLoadingComplete(String s, View view, Bitmap bitmap) {
}
@Override
public void onLoadingCancelled(String s, View view) {
}
});
}
}
.
Ogni volta che scorlo la valida di listview (vai su o giù), non salva l'immagine caricata in precedenza, invece ricarica l'imageview.Come faccio a salvare "l'immagine in modo che non faccia sfarfalla su ogni rotolo?
Soluzione
Non sarai in grado di salvare l'IME.Un adattatore di elenco crea gli elementi visualizzati e alcuni elementi sopra e sotto.Tutti gli altri oggetti vengono distrutti quindi ri-creati quando necessario.Questo è lo scopo del Convertview.
Nella libreria imageloader, anche se hai la cache, quando viene creata l'elemento, la lib certa di un'immagine memorizzata nella cache, viene visualizzata la rete per scaricarla.
Ora, la prima volta che viene creata la tua immagine, ci vuole un po 'di tempo per ottenerlo dalla rete e nella cache.
Le altre volte viene creata, ci vuole tempo, molto tempo, per guardare nella cache e visualizzarlo.Ma non è un display immediato ...
Altri suggerimenti
Abilita cache del disco e cache di memoria Classe dell'immaginazione utente prima di ogni immagine di ogni immagine come sotto
Imageaware Imageaware= New ImageViewAware (ImagEview, False); imategeloadeer.displayimage (URL, ImageAware, OTIONS);