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ć?
7
A
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.
Powiązane problemy
- 1. , którego z == i =: = powinienem użyć?
- 2. Którego adaptera CouchDB dla Ruby powinienem użyć?
- 3. JsonResult lub Json: którego użyć?
- 4. Którego typu powinienem używać?
- 5. Różnica między getcwd() i dirname (__ FILE__)? Którego powinienem użyć?
- 6. Którego powinienem użyć między sprężynowym, sprężynowym BOM i sprężynowym IO?
- 7. którego menedżera transakcji powinienem użyć (JTA vs JPA)?
- 8. Jak dodać widok jako tło do surfaceView?
- 9. Tabela lub lista: czego powinienem tu użyć?
- 10. Co powinienem użyć uśpienia lub czasomierza
- 11. strlen, mb_strlen, którego użyć?
- 12. Którego kompilatora D użyć?
- 13. Camera Tutorial dla Androida (używając surfaceview)
- 14. Buforowany vs nie buforowany, którego użyć?
- 15. co powinienem użyć bloku try lub catch lub zdarzenia onerror
- 16. Którego użyć Auth :: check() lub Auth :: user() - Laravel 5.1?
- 17. ARG lub ENV, którego użyć w tym przypadku?
- 18. Czy MutationRecord.oldValue coś powinienem użyć?
- 19. Jakie są różnice pomiędzy numpy macierzami i macierzami? Którego powinienem użyć?
- 20. Widok Androida dodaj dziecko
- 21. BottomSheetDialog/BottomSheetDialogFragment - którego użyć i jak?
- 22. co powinienem użyć Eclipse rcp lub Eclipse Scout?
- 23. WEBrick: RequestURITooDuży: czy powinienem zaktualizować lub użyć innego serwera?
- 24. Czy powinienem rozszerzyć klasę Binder lub użyć programu Messenger?
- 25. Czy powinienem użyć include_recipe lub dodać przepis do run_list?
- 26. powinienem użyć pola lub właściwości w klasie, aby ustawić wartości
- 27. Co powinienem użyć w Prism-MEF lub Unity?
- 28. Czy w systemie Windows powinienem użyć funkcji CreateFile lub fopen?
- 29. Java: czy powinienem użyć "tego" słowa kluczowego lub przedrostka "m_"?
- 30. Czy powinienem użyć put() lub putIfAbsent() po użyciu getOrDefault()?
Dzięki SurfaceView okazało się, że jest o wiele szybszy i lepiej dopasowany. – jfisk