2010-07-30 17 views
7

Próbowałem zrobić aplikację z możliwością przewijania/powiększania i wszystko poszło świetnie, z wyjątkiem rysowania bitmap. Jest to bardzo duży obraz (6656 na 4096), który podzieliłem na płytki. Istnieje prostokąt, do którego są rysowane mapy bitowe, i wykrywa on, który prostokąt znajduje się w lewym górnym rogu, aby mógł narysować bitmapy, które pokryją ekran widoczny dla użytkownika. Mój problem polega na tym, że wszystkie opóźnienia występują, gdy aplikacja musi załadować bitmapy do pamięci; Po załadowaniu nie stanowi to problemu. Zacząłem od 512 na 512 płytek, a następnie zszedłem do 128 na 128. Chociaż pomogło, nadal jest zauważalne opóźnienie. Patrzyłem na surfaceView i chciałem twojej opinii, czy powinienem trzymać się widoku, lub użyć surfaceView, aby rozwiązać moje opóźnienie.widok Androida lub surfaceView, którego powinienem użyć?

Odpowiedz

9

Jeśli masz własne SurfaceView, masz kilka zalet.

Głównie dlatego, że możesz mieć całą logikę rysowania w oddzielnym wątku. Oznacza to, że ui nie będzie czekać na ciebie (zakładam, że opóźnienie jest spowodowane tym, że wątek jest blokowany?).

SurfaceView ma również szybszy charakter.

Podsumowanie na stronie developer.android.com znajduje się również pod adresem this, gdzie można znaleźć odniesienie do metody rysowania.

+1

Dzięki SurfaceView okazało się, że jest o wiele szybszy i lepiej dopasowany. – jfisk

Powiązane problemy