2012-05-18 19 views
11

Chcę się nauczyć, jak tworzyć warstwy (jak w programie Photoshop) w mojej aplikacji na Androida. Chcę osiągnąć jedną podstawową rzecz: kiedy dodaję obraz do mojego płótna, na którym będzie na przykład postać, chcę móc malować płótno, ale obraz nie może wpływać na linie rysunku. A potem muszę zapisać ten obraz na mojej karcie SD.Android tworzy warstwy na płótnie

Wszelkie sugestie/porady/przykłady? Co mogę użyć, aby to osiągnąć?

+0

Pan spojrzał na 'PorterDuff.Mode'? Zakładam, że twoje warstwy są statyczne i raz narysowane nie można usunąć ani przenieść. Czy to jest poprawne, czy też chcesz warstwy dokładnie takie jak Photoshop? – techiServices

+0

Tak, chcę stworzyć coś podobnego do warstwy w Photoshopie. –

+0

Czy można je dodawać, usuwać i przenosić? – techiServices

Odpowiedz

1

Kolejność malowania tworzy warstwy. Utwórz stos przedmiotów, który malujesz, a następnie modyfikuj poszczególne obiekty (malowanie na warstwie) lub przesuwaj je w tym stosie (zmieniając warstwy). Użyj tej samej kolejności, aby utworzyć obraz do zapisania.

0

Zapoznaj się z różnymi Xfermode s, które można zastosować do Paint. PorterDuff.Mode oferuje niektóre opcje takie jak w programie Photoshop, takie jak ekran i pomnożenie, rozjaśnienie i przyciemnienie. Model AvoidXferMode może jednak lepiej odpowiadać Twoim potrzebom.

0

Możesz komponować swoje warstwy w FrameLayout. Możesz potrzebować sztuczek, aby zdarzenia dotykowe zostały przekazane do właściwej warstwy.

Po utworzeniu przez system Android swoich widoków, możesz użyć mFrameLayout.onDraw (Canvas c), aby narysować całość na płótnie.

Ten artykuł zawiera pewne informacje o tym, jak włączyć viewgroup do JPEG Image on canvas to JPEG file