【问题标题】:How to draw Crescent Moon shape on a circle如何在圆圈上绘制新月形状
【发布时间】:2016-10-30 16:33:58
【问题描述】:

我想在画布上创建这样的形状。我知道如何用笔划画一个圆圈,但我想要一个新月形的圆圈效果。

这是圈子的代码:

          Bitmap bitmap = Bitmap.createBitmap(50, 50, Bitmap.Config.ARGB_8888);
        Canvas canvas = new Canvas(bitmap);
        float mid1;
        float min1,fat1,half1,rad1;

            mid1 = ImageWidth / 2;
            min1 = Math.min(ImageWidth, ImageHeight);
            fat1 = min1 / 17;
            half1 = min1 / 2;
            rad1 = half1 - fat1;
            mid1 = mid1 - half1;

        Paint paint = new Paint();
        paint.setAntiAlias(true);
        paint.setStyle(Paint.Style.FILL);
        paint.setColor(color);
        canvas.drawCircle(mid1 + half1, half1, rad1, paint);

代码非常适合圆圈。我也知道如何画笔触,但我不会创建新月效果。

【问题讨论】:

    标签: android canvas shape


    【解决方案1】:

    设置一个圆形clip path,然后在 x 和 y 上绘制一个位移了某个量的第二个圆形。

    【讨论】:

      【解决方案2】:

      可以参考这个view,用贝塞尔曲线画,用PorterDuff.Mode.DST_OUT得到正确的局部视图(月亮视图)。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2022-12-01
        • 1970-01-01
        • 1970-01-01
        • 2015-12-31
        • 1970-01-01
        • 1970-01-01
        • 2016-11-15
        相关资源
        最近更新 更多