2012-12-05 22 views
5

Sviluppo un lettore audio per Android e nella mia attività di ricerca di album ho un problema di prestazioni: molto ritardo sullo scorrimento.Ottimizza layout complesso

In questa immagine è la mia rappresentazione di layout: enter image description here

E 'una ListView che mostrano una fila; una riga contiene 5 album raggruppati per artista.

Ogni colore diverso è un file di layout diverso. E ogni file è gestito da un adattatore.

Nell'album (colore arancione), non uso compoundDrawable sul TextView perché ho il caricamento pigro ImageView e non capisco come posso rendere questo caricamento pigro su textview compoundDrawable.

Se necessario, posso inviare tutti i file di layout.

+1

Come può questo in forma su un piccolo smartphone a schermo ?! Forse dovresti vedere il tuo problema di prestazioni come un suggerimento che il tuo layout è troppo complesso. – Ridcully

+0

è per un tablet e imageView come 80dp quadrati. su un tablet schermo da 7 "ho visto 2 file di 5 album. – flagadajones

risposta

2

Dopo molte ottimizzazioni, io cambio il mio layout come questo

My New Layout

0

Hmm, non sono sicuro, se questo è possibile nel tuo caso facilmente, ma penso che se fai ogni riga della tabella un RelativeLayout, potresti probabilmente rimuovere la maggior parte o tutti gli elementi di LinearLayout per le righe. Dovresti solo dichiarare che ogni LinearLayout di fila deve essere a sinistra/a destra di un altro con Android: layout_toLeftOf e android: layout_alignParentRight.

0

Se è necessario semplificare il layout per migliorare le prestazioni, è necessario sacrificare qualcosa, una tale semplificazione non è gratuita. Penso che l'approccio più promettente sarebbe quello di sostituire il layout listview di riga con GridLayout. In linea di massima è possibile gestire tutto il layout all'interno di quella riga con uno di questi GridLayout, ma per avere un vantaggio reale dovresti rinunciare a GridView (griglia dell'album per artista) e gestirlo come parte di GridLayout. Questo probabilmente richiederebbe qualche codice Java aggiuntivo, ma penso che dovrebbe migliorare le prestazioni.

1

Hai letto questo articolo?

Android Performance Case Study

Può essere d'aiuto nel tuo caso, ma non sapere di più su come si sta impostando la vista, è solo un suggerimento.