我尝试像在这个应用程序中那样做圆形菜单。
在“扩展”模式下,我绘制这个组件如下:
<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 方法中,my.custom.component
我使用android.graphics.Path
withandroid.graphics.Paint
和一些数学将圆划分为 8 个部分。
视觉上我完全如屏幕截图所示。但是当我按下圆圈的一部分时,我需要用另一种颜色重新绘制这部分以向用户展示发生了什么事情。
例如,我如何重绘从画布的另一部分截断的组件画布的一部分android.graphics.Path
。
换句话说,我知道我应该在 onDraw 方法中重绘画布,我知道我可以从在 photoshop 中绘制的可绘制对象中显示一些位图并且有一些“多屏问题”,我知道如何确定用户按下的部分。但我不知道如何选择画布的一部分并重绘它。