/ / Android: Wydajność rysowania mapy, rysunki 1K! - Android, mapy Android, wydajność

Android: wydajność rysowania mapy, rysunki 1K! - Android, mapy android, wydajność

Mam więc aplikację, która wyznacza granice,polilinia, koła itp. nad otwartą mapą ekranową. Przechowuję listę rysunków, gdy mapa jest unieważniona Ieruję tę listę, przerysowując każdy element w ramach metody onDraw nakładki. Działa to dobrze, dopóki moja liczba rysunków nie osiągnie około 300+. Potem pojawia się poważne opóźnienie interfejsu użytkownika.

Szukam skutecznego sposobu, aby to zrobić?

Zrobiłem rysowanie pamięci podręcznej bitmapy w aplikacji do rysowania na tablicy. Chociaż to nie zadziała w tej sytuacji, ponieważ rzut w tle może się zmienić, więc rysunek musi się przesunąć.

Odpowiedzi:

2 dla odpowiedzi № 1

Oszczędzałem GeoPoints, a potem robiłem coś ciężkiegokonwersja do „MapView Point” podczas każdego przerysowania. Okazuje się, że rzut ma „punkt pośredni”, który można zapisać i łatwo rzutować na „punkt mapView”. Ciężka część obliczeniowa została wykonana tylko raz.

Kroki

  • Motion Event (x, y) do GeoPoint przy użyciu (fromPixels)
  • GeoPoint do wartości pośredniej przy użyciu (toMapPixelsProjected)
  • Buforuj wartości pośrednie dla wyświetlania rysunku
  • OnDraw -> wartości pośrednie do ekranowania współrzędnych za pomocą (toMapPixelsTranslated)