2012-12-05 17 views
5

Rozwijam odtwarzacz audio dla systemu Android oraz w mojej działalności przeglądania albumów Mam problem z wydajnością: dużo opóźnienia podczas przewijania.Optymalizacja złożonego układu

W tym obrazie jest moja reprezentacja układ: enter image description here

Jest to ListView, który wyświetla wiersz; wiersz zawiera 5 albumów pogrupowanych według wykonawców.

Każdy inny kolor to inny plik układu. A każdy plik jest zarządzany przez adapter.

W albumie (kolor pomarańczowy), nie używam compoundDrawable na TextView, ponieważ mam leniwy załadunek ImageView i nie rozumiem, jak mogę zrobić to leniwy ładunek na textview compoundDrawable.

Jeśli chcesz, mogę opublikować wszystkie pliki układu.

+1

Jak to pasuje na maleńkim ekranie smartfona można ?! Być może powinieneś zobaczyć problem z wydajnością jako wskazówkę, że twój układ jest zbyt skomplikowany. – Ridcully

+0

Jest to tablet i obraz Wyświetl jako kwadratowy rozmiar 80dp. na ekranie tabletu 7 "widziałem 2 rzędy po 5 albumów. – flagadajones

Odpowiedz

0

Hmm, nie jestem pewien, czy jest to możliwe w twoim przypadku z łatwością, ale myślę, że jeśli zrobisz każdy wiersz tabeli RelativeLayout, prawdopodobnie usuniesz większość lub wszystkie elementy LinearLayout dla wierszy. Trzeba tylko stwierdzić, że każdy LinearLayout z rzędu musi znajdować się po lewej/po prawej stronie innego androida: layout_toLeftOf i android: layout_alignParentRight.

0

Jeśli chcesz uprościć swój układ, aby poprawić wydajność, będziesz musiał poświęcić coś, takie uproszczenie nie przyjdzie za darmo. Myślę, że najbardziej obiecującym podejściem byłoby zastąpienie układu listview wiersza z GridLayout. Zasadniczo możesz obsłużyć cały układ w tym rzędzie jednym z takich GridLayout, ale aby uzyskać prawdziwą korzyść, musisz zrezygnować z GridView (siatka albumu według artysty) i obsłużyć to jako część GridLayout. Prawdopodobnie zajmie to trochę dodatkowego kodu Java, ale myślę, że powinien poprawić wydajność.

1

Czy czytasz ten artykuł?

Android Performance Case Study

To może pomóc w Twoim przypadku, ale nie wiedząc więcej o sposobach konfigurowania pogląd, że to tylko sugestia.