Migliorare l'efficienza di ListView quando carichi le immagini da SD in ListView

Sto utilizzando un adattatore personalizzato per il mio ListView come per il campione adattatore efficiente di Romain Guy.

Nel metodo getView () della mia scheda assegna un ImageView un'image jpg memorizzata in SD utilizzando il seguente codice:

  • Installare le applicazioni in silenzio, con l'authorization INSTALL_PACKAGES concessa
  • Giustificare il text in visualizzazione di text
  • Come rilevare quando un'applicazione Android va sullo background e torna in primo piano
  • Radiobuttons aggiunti a livello di programmazione rifiutano di rispettare la ponderazione LayoutParams
  • NoClassDefFoundError sulla libreria di Calligraphy
  • Come scrivere i dati exif all'image in Android?
  • File f=new File(MovieThumbs.get(position)); if(f.length() > 0) { holder.thumb.setImageBitmap(BitmapFactory.decodeFile(MovieThumbs.get(position))); } 

    Quando fai clic su un elenco di circa 200 elementi utilizzando questo metodo, l'applicazione soffre di ctriggers balbuzie mentre cerca di trattare le immagini.

    C'è una soluzione più efficiente per questo?

  • Come ridurre dynamicmente la dimensione WebView in base al suo contenuto?
  • sviluppare un'applicazione di schermo di block android
  • EditText non mostrando una tastiera
  • Ottieni numbers da EditText
  • Come usare il pugnale in un progetto della libreria Android
  • Jacoco e Unità Test Codice Copertura con android-gradle-plugin> = 1.1
  • 2 Solutions collect form web for “Migliorare l'efficienza di ListView quando carichi le immagini da SD in ListView”

    Le immagini devono essere elaborate in un thread di background. Occorre tener conto delle viste riciclate. Cerco di affrontare tutte queste questioni nel mio codice di esempio, ora funziona bene, puoi dare un'occhiata Carico pigro di immagini in ListView

    Invece di caricare le immagini dall'adattatore di elenco su richiesta su come avviare il lancio di un thread dal onCreate della tua attività per caricare le immagini? Quando each image viene caricata, puoi triggersre una richiamata all'attività per visualizzare l'image nell'elenco. Il metodo di richiamata sarebbe qualcosa lungo le linee di:

     void onImageDownloadComplete(int pos, BitMap bm) { ListView lv = getListView(); View listItem = lv.getChildAt(pos); ImageView img = (ImageView)listItem.getChildAt(indexOfIcon); img.setImageBitmap(bm); } 
    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.