Ich versuche, ein Kreismenü wie in dieser App zu erstellen.
Im "erweiterten" Modus zeichne ich diese Komponente wie folgt:
<RelativeLayout android:id="@+id/bigCircle">
<!--color full borders-->
<my.custom.component android:id="@+id/middleCircle">
<!--circle for buttons-->
<RelativeLayout android:id="@+id/smallCircle">
<!--minus button-->
</RelativeLayout>
</my.custom.component>
</RelativeLayout>
In der onDraw-Methode von my.custom.component
Ich teile den Kreis in 8 Teile, indem ich android.graphics.Path
con android.graphics.Paint
und etwas Mathe.
Visuell habe ich genau das, was auf dem Screenshot zu sehen ist. Aber wenn ich auf einen Teil des Kreises drücke, muss ich diesen Teil in einer anderen Farbe neu zeichnen, um dem Benutzer zu zeigen, was los ist.
Wie kann ich einen Teil des Canvas einer Komponente neu zeichnen, der von einem anderen Teil des Canvas abgeschnitten ist? android.graphics.Path
zum Beispiel.
In einem anderen Wort, ich weiß, was neu zeichnen Leinwand ich in onDraw-Methode tun sollte, ich weiß, dass ich einige Bitmap aus drawables in Photoshop gemalt zeigen kann und haben einige "Multiscreen-Problem", ich weiß, wie ich Teil bestimmen kann, die Benutzer gedrückt. Aber ich weiß nicht, wie ich einen Teil der Leinwand auswählen und es neu zeichnen kann.