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?

È stato utile?

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top