Pracuję nad niestandardowym widokiem wykresu w systemie Android, który korzysta z funkcji Canvas # drawLines i obiektu paint z włączonym wygładzaniem antyaliasingu. Mój widok ma włączoną akcelerację sprzętową. Od czasu do czasu, gdy przybliżam/oddalam powiększanie, niektóre linie na moim wykresie będą wyglądały na rozłączone i będą się zbierać w gradiencie. Jeśli zmienię warstwę oprogramowania lub wyłączyłem wygładzanie, problem zniknie. Czy jest to błąd związany z drawLines, czy ktoś ma pojęcie o tym, co może się dziać?Android - rysowanie z akceleracją sprzętową i antyaliasingiem powoduje powstawanie artefaktów
Pierwszy obraz przedstawia problem, drugi obraz został nieznacznie przesunięty i pokazuje, jak wykres wygląda przez większość czasu, z całkowicie połączonymi liniami.
(obraz pokazuje problem)
(obraz pokazujący jak wykres powinien wyglądać - jeszcze kilka drobnych luk)
Dzięki. Zetknąłem się z podobnym problemem. Próbowałem rozwiązać, używając 'LAYER_TYPE_SOFTWARE'. Jednak wydaje się, że wolniej, jak na wykresie, jest ruchome skrzyżowanie, w oparciu o moje zdarzenie dotykowe. Wiesz dlaczego? Domyślam się, że czas jest zajęty przeniesieniem programowej bitmapy poza grafiką, na GPU, kiedy używane jest 'LAYER_TYPE_SOFTWARE'. –
Po wyłączeniu funkcji anti-alias, chociaż rozłączny problem już nie występuje, narysowana linia nie jest gładka i wygląda brzydko. –