android - 如何在android中绘制带有分区的圆圈?

标签 android layout canvas

我想在我的应用程序中绘制这种类型的圆。我可以使用 Canvas 绘制圆圈,但我不知道如何进行分区?

谁能建议我如何分割圆圈?

enter image description here

编辑:- 我想在内圈画线。

enter image description here

提前致谢。

最佳答案

这是满足您要求的工作代码....

编辑代码:-

    Paint paint1 = new Paint();
        Paint paint2 = new Paint();
        Paint paint3 = new Paint();
        Paint paint4 = new Paint();
        Paint paint5 = new Paint();
        final RectF rect = new RectF();
        int mRadius = 130;
        //Example values
        rect.set(getWidth()/2- mRadius, getHeight()/2 - mRadius, getWidth()/2 + mRadius, getHeight()/2 + mRadius); 
        paint1.setColor(Color.GREEN);
        paint1.setStrokeWidth(mRadius/2);
        paint1.setAntiAlias(true);
        paint1.setStrokeCap(Paint.Cap.BUTT);
        paint1.setStyle(Paint.Style.STROKE);
        paint2.setColor(Color.RED);
        paint2.setStrokeWidth(mRadius/2);
        paint2.setAntiAlias(true);
        paint2.setStrokeCap(Paint.Cap.BUTT);
        paint2.setStyle(Paint.Style.STROKE);
        paint3.setColor(Color.BLUE);
        paint3.setStrokeWidth(5);
        paint3.setAntiAlias(true);
        paint3.setStrokeCap(Paint.Cap.BUTT);
        paint3.setStyle(Paint.Style.STROKE);
        canvas.drawArc(rect, 0, 60, false, paint1);
        canvas.drawArc(rect, 60, 60, false, paint2);
        canvas.drawArc(rect, 120, 60, false, paint1);
        canvas.drawArc(rect, 180, 60, false, paint2);
        canvas.drawArc(rect, 240, 60, false, paint1);
        canvas.drawArc(rect, 300, 60, false, paint2);

        canvas.drawLine(getWidth()/2, 
                getHeight()/2, getWidth()/2-mRadius/2, getHeight()/2-mRadius/2,paint3);

        canvas.drawLine(getWidth()/2, 
                getHeight()/2, getWidth()/2+mRadius/2, getHeight()/2-mRadius/2,paint3);

        canvas.drawLine(getWidth()/2, 
                getHeight()/2, getWidth()/2-mRadius/2, getHeight()/2+mRadius/2,paint3);

        canvas.drawLine(getWidth()/2, 
                getHeight()/2, getWidth()/2+mRadius/2, getHeight()/2+mRadius/2,paint3);

        canvas.drawLine(getWidth()/2, 
                getHeight()/2, getWidth()/2-mRadius/4-mRadius/2, getHeight()/2,paint3);

        canvas.drawLine(getWidth()/2, 
                getHeight()/2, getWidth()/2+mRadius/4+mRadius/2, getHeight()/2,paint3);

        paint4.setColor(Color.BLACK);

        canvas.drawCircle(getWidth()/2, getHeight()/2, mRadius/2, paint4);

        paint5.setColor(Color.YELLOW);
        paint5.setStrokeWidth(3);
        paint5.setAntiAlias(true);
        paint5.setStrokeCap(Paint.Cap.BUTT);
        paint5.setStyle(Paint.Style.STROKE);
        canvas.drawCircle(getWidth()/2, getHeight()/2, mRadius/2, paint5);

现在我希望你对我的回答感到满意....

关于android - 如何在android中绘制带有分区的圆圈?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9205838/

相关文章:

Android 更改了 app_name 字符串,现在它崩溃了

java - 如何使用 android 获取 Firebase 数据库中的子值?

c# - 填充但有最小尺寸并使滚动条在 Windows 窗体中工作

javascript - 通过升级保存 HTML5 Canvas

math - 计算 Web Audio API 滤波器在特定频率和 Q 因子下的响应

android - 另一个包中的新 Activity 杀死了我的应用程序

android - 我在哪里放置代码以将请求传递到 Android In App Billing 中的 In-app Billing 服务?

ios - 底部标签栏上方的间隙 - 嵌入式 NavigationController + 嵌入式 TableViewController

android - 单击 ListView 项时如何更改按钮背景

c# - 如何使用 MVVM 根据 Canvas 大小居中形状