Am besten du schreibst dir auf ein Blatt Papier auf, was alles in der App passieren soll und dann überlegst Du Dir wie es umzusetzen wäre.
-> Bild mit der Kamera aufnehmen
-> Bild zwischenspeichern
-> Bild anzeigen zur Weiterbearbeitung
Zur Manipulation sollte man das Ganze in einer Bitmap speichern.
Bitmap | Android Developers
Unter Android kann man nun zum Beispiel mit Bitmap.getPixel(int x, int y) zum Beispiel die Farbe jeden Pixels herausbekommen.
Mit SetPixel entsprechend Manipulieren.
Wie das Bild nun verändert werden soll, liegt an deinem Algorhytmus denn du dir ausdenken musst.
Maske/ Ellipse: Hier könntest du Dir zum Beispiel einen CustomView erstellen. Da zeichnest du nun deine Bitmap drauf und im nächsten Schritt übermalst du das mit deiner Maske. ( Canvas / Zeichenfunktionen /
Canvas | Android Developers )
-> um die Maske veränderlich zu machen, baust du Dir in deinen CustomView einen Touchlistner ein
Wichtig: dein Handy nimmt mit einer höheren Auflösung auf, als es so auf deinem Handy/Customview dargestellt wird. Sprich deine Ansicht im Customview ist sicherlich skaliert. Sagen wir Faktor 300%, das heisst wenn du deine Maske auf dem Customview platziert hast, musst du logischerweise die Koordinaten in Relation zu deiner OriginalBitmap bringen (Faktor 300%)
Dann manipulierst du die OriginalBitmap und gut ist.
Google mal nach
Imagemanipulation android bitmap
da findest du einigen Lesestoff.