Zastanawiam się, czy istnieje sposób rysowania wypełnionych obszarów (takich jak wypełniony wielokąt) za pomocą Canvas Android bez użycia klasy klasy Path
i zadzwoń pod numer canvas.drawPath(...)
.Czy istnieje sposób na narysowanie wypełnionego obszaru Canvas bez użycia ścieżki?
Powodem, dla którego chcę to zrobić bez Path
jest to, że muszę narysować bardzo duże zbiory danych i canvas.drawPath(...)
nie jest przyspieszany sprzętowo, a zatem wolny.
Wydajność przy korzystaniu z canvas.drawLines(...)
jest znacznie lepsza ze względu na przyspieszenie sprzętowe, jednak nie znalazłem sposobu na wypełnienie wielokąta za pomocą tego podejścia (nawet jeśli wszystkie linie są połączone).
Nawet wywołanie paint.setStyle(Style.FILL)
nie wypełniło wielokąta podczas korzystania z drawLines(...)
.
Czy istnieje sposób narysowania wypełnionego wielokąta bez stosowania podejścia Path
?
Lub Czy jest jakiś inny sposób, aby poprawić wydajność przy użyciu przy użyciu Canvas
?
Czy Twój widok "widok" jest interaktywny (czy w twoim zestawie danych są potrzebne zmiany, które należy wyrenderować)? Po prostu wyciągając swój zestaw danych do "płótna", który jest wolny? –
Mój widok jest interaktywny i dlatego stale odświeżany, używam już mechanizmu buforowania, który znacznie poprawił wydajność. Jednak nie jestem jeszcze usatysfakcjonowany. –
Moje ostatnie pytanie do opracowania odpowiedzi. Kiedy pojawia się zmiana w zestawie danych, czy ponownie rysujesz cały zestaw danych, czy tylko te, których dotyczy zmiana? Mam na myśli, czy już używasz 'view.invalidate (Rect dirty)'? To tylko wskazówka, aby poprawić wydajność. –