2015-03-17 10 views
5

Uso il caricatore di immagini universale in girdview. Alcuni dei video vanno bene per cambiare immagine e alcuni non sono il lavoro e dare l'errore del genere,L'immagine caricatore universale fornisce l'immagine di errore non può essere decodificata Android

03-17 12:49:52.287: D/skia(21755): --- SkImageDecoder::Factory returned null 
03-17 12:49:52.287: E/ImageLoader(21755): Image can't be decoded [file:////storage/sdcard0/Movies/Naruto Episodes 55.mp4_270x270] 

Ecco il mio codice in classe principale.

 DisplayImageOptions defaultOptions = new DisplayImageOptions.Builder() 
      .cacheOnDisc(true).cacheInMemory(true) 
      .imageScaleType(ImageScaleType.EXACTLY) 
      .displayer(new FadeInBitmapDisplayer(300)).build(); 

    ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(
      getApplicationContext()) 
      .defaultDisplayImageOptions(defaultOptions) 
      .memoryCache(new WeakMemoryCache()) 
      .discCacheSize(100 * 1024 * 1024).build(); 

    ImageLoader.getInstance().init(config); 

Ecco il codice in adpater,

String url = "/storage/sdcard0/Movies/Naruto Episodes 55.mp4"; 


    ImageLoader imageLoader = ImageLoader.getInstance(); 
    DisplayImageOptions options = new DisplayImageOptions.Builder().cacheInMemory(true) 
        .cacheOnDisc(true).resetViewBeforeLoading(true) 
        .showImageForEmptyUri(R.drawable.x_document_icon) 
        .showImageOnFail(R.drawable.x_document_icon) 
        .showImageOnLoading(R.drawable.x_document_icon).build(); 

    //initialize image view 


    //download and display image from url 
    imageLoader.displayImage("file:///"+url, img_btn, options); 

Il seguente codice di lavoro bene, ma ci vuole un po 'di tempo.

Bitmap bitmap = ThumbnailUtils.createVideoThumbnail(url, 0); 
    img_btn.setImageBitmap(bitmap); 
+1

immagine che si sta tentando di decodificare o carico avente un'estensione non valida. 'file: //// storage/sdcard0/Movies/Naruto Episodes 55.mp4_270x270' debug e controlla quale esatto recupero UIL url. – SilentKiller

risposta

0

Il nome del file contiene spazi c'è un issue posted in Github. Sulla base delle osservazioni questa soluzione funziona anche se non ho ancora provato:

if (file.exists()) { 
    final String uri = Uri.fromFile(file).toString(); 
    final String decoded = Uri.decode(uri); 
    ImageLoader.getInstance().displayImage(decoded, imageView); 
} 

Secondo il vostro commento questo dovrebbe funzionare:

String url = "/storage/sdcard0/Movies/Naruto Episodes 55.mp4"; 
imageLoader.displayImage("file:///"+Uri.decode(url), img_btn, options); 
+0

dove dovrei inserire questo codice? :) – Halo

+0

@Halo vedere la modifica –

+0

Non ha funzionato. Dopo aver fatto come hai detto, anche alcuni dei buoni funzionano. :( – Halo