2010-10-23 14 views
6

Mam prostą grę w karty, w której użytkownik może przeciągać i upuszczać karty po ekranie. Na niektórych telefonach z Androidem 2,2, takich jak Droid i EVO, karta jest bardzo wolna. Jest to dziwne, ponieważ dzieje się tak w niektórych szybszych telefonach. Jednak nie wszystkie telefony testuję na Droidach i Droidach X, a program działa świetnie, działa też na wolniejszym telefonie, takim jak G1. Zacząłem otrzymywać raporty o tym, gdy Motorolla wydała aktualizację 2.2 dla Droida.Dlaczego rysowanie bitmap jest bardzo wolne w niektórych telefonach z Androidem 2.2?

Oto poprawka, którą wymyśliłem, ale to naprawdę obniża jakość mojej grafiki. Gradienty wyglądają okropnie.

zmieniłem tę

Bitmap.createBitmap(newBmp.getWidth(), newBmp.getHeight(), Bitmap.Config.ARGB_8888); 

do tego

Bitmap.createBitmap(newBmp.getWidth(), newBmp.getHeight(), Bitmap.Config.ARGB_4444); 

problem zniknie, ale wygląd cierpieć. Muszę zachować kanał alfa, abym nie mógł używać RGB_565. Czy jest jakiś sposób, aby zachować jakość obrazu i nie sprawić, by działał tak wolno?

+0

Nie wiem o rozwoju Androida, ale czy niektóre urządzenia mogą używać innego natywnego formatu bitmapy? Spróbowałbym użyć formatu, który jest rodzimy dla urządzenia i oczekiwałbym, że będzie to najszybszy. – Lucero

+0

Używam plików png. Dziwne jest to, że będzie działał dobrze na Droidie z 2.1, ale wolno na niektórych telefonach Droid z 2.2. Myślę, że to może być błąd, ale wciąż potrzebuję dobrej pracy. – theJosh

+1

Jak duże są te karty? Ponadto, skąd czerpiesz bitmapy? Czy używasz ich jako buforów poza ekranem? Jakie rozdzielczości to bitmapy? –

Odpowiedz

0

Prawdopodobnie są to niektóre duże Bitmaps, które próbujesz przetwarzać. Spójrz na to szkolenie Android Loading Large Bitmaps Efficiently.

Myślę, że może to poprawić wydajność i sprawić, że ładowanie bitmap nie blokuje głównego wątku interfejsu użytkownika.

Powiązane problemy