Search code examples
androiduser-interfacegoogle-fit

Create Doughnut Chart Similar to Google Fit


Does anyone know how to create a doughnut chart similar to the one in Google Fit.

Google Fit Chart


Solution

  • I also wanted this, but the best answer i could find was "make your own". So I did.

    This is pretty basic (I'm new to android) and unfinished, but it should give you the idea.

    Basically, you just set up your paint objects

        paintPrimary = new Paint();
        paintPrimary.setAntiAlias(true);
        paintPrimary.setColor(colorPrimary);
        paintPrimary.setStyle(Paint.Style.STROKE);
        paintPrimary.setStrokeCap(Paint.Cap.ROUND);
    

    and call canvas.drawArc

    class FitDoughnutView extends View {
    
        private RectF _oval;
    
        public FitDoughnutView(Context ctx) {
            super(ctx);
        }
    
        @Override
        protected void onDraw(Canvas canvas) {
            super.onDraw(canvas);
    
            canvas.drawArc(_oval, 0, 360, false, paintSecondary);
    
            canvas.drawArc(_oval, 270, percentDeg, false, paintPrimary);
        }
    
        @Override
        protected void onSizeChanged(int w, int h, int oldw, int oldh) {
            _oval = new RectF(width, width, w - width, h - width);
        }
    }
    

    Full source here: github.com/tehmantra/fitdoughnut

    Someone's tutorial: hmkcode.com/android-canvas-how-to-draw-2d-donut-chart/