このアプリのようにサークルメニューをやってみます。
「拡張」モードでは、このコンポーネントを次のように描画します。
<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>
onDrawメソッドでは、withといくつかの数学my.custom.component
を使用して円を8つの部分に分割します。
視覚的には、スクリーンショットに示されているとおりです。しかし、円の一部を押すと、何が起こっているのかをユーザーに示すために、この部分を別の色で再描画する必要があります。android.graphics.Path
android.graphics.Paint
たとえば、コンポーネントのキャンバスの一部をキャンバスの別の部分から切り離して再描画する方法android.graphics.Path
。
言い換えれば、onDrawメソッドでどの再描画キャンバスを実行する必要があるかを知っています。フォトショップでペイントされたドローアブルからビットマップを表示でき、「マルチスクリーンの問題」が発生することを知っています。どのユーザーが押したかを判断する方法を知っています。しかし、キャンバスの一部を選択して再描画する方法がわかりません。