How to create circular progress bar(pie chart) like indicator - Android

前端 未结 5 2008
北恋
北恋 2020-12-08 08:05

Now I have a horizontal progress bar which is updated programmatically via ProgressBar setProgress method:



        
5条回答
  •  無奈伤痛
    2020-12-08 08:43

    Try this piece of code to create circular progress bar(pie chart). pass it integer value to draw how many percent of filling area. :)

    private void circularImageBar(ImageView iv2, int i) {
    
        Bitmap b = Bitmap.createBitmap(300, 300,Bitmap.Config.ARGB_8888);
        Canvas canvas = new Canvas(b); 
        Paint paint = new Paint();
    
            paint.setColor(Color.parseColor("#c4c4c4"));
            paint.setStrokeWidth(10);
            paint.setStyle(Paint.Style.STROKE);
            canvas.drawCircle(150, 150, 140, paint);
            paint.setColor(Color.parseColor("#FFDB4C"));
            paint.setStrokeWidth(10);   
            paint.setStyle(Paint.Style.FILL);
            final RectF oval = new RectF();
            paint.setStyle(Paint.Style.STROKE);
            oval.set(10,10,290,290);
            canvas.drawArc(oval, 270, ((i*360)/100), false, paint);
            paint.setStrokeWidth(0);    
            paint.setTextAlign(Align.CENTER);
            paint.setColor(Color.parseColor("#8E8E93")); 
            paint.setTextSize(140);
            canvas.drawText(""+i, 150, 150+(paint.getTextSize()/3), paint); 
            iv2.setImageBitmap(b);
    }
    

提交回复
热议问题