以编程方式创建自定义饼图形状

时间:2015-02-14 19:29:01

标签: android

我想以编程方式绘制一些东西,将其设置为ImageView的背景。它应该是这样的:

enter image description here

所以它有点像饼图,但它不是饼图。

我找到了一些画圆圈的东西:

    ShapeDrawable biggerCircle= new ShapeDrawable( new OvalShape());
    biggerCircle.setIntrinsicHeight( 60 );
    biggerCircle.setIntrinsicWidth( 60);
    biggerCircle.setBounds(new Rect(0, 0, 60, 60));
    biggerCircle.getPaint().setColor(Color.BLUE);

    ShapeDrawable smallerCircle= new ShapeDrawable( new OvalShape());
    smallerCircle.setIntrinsicHeight( 10 );
    smallerCircle.setIntrinsicWidth( 10);
    smallerCircle.setBounds(new Rect(0, 0, 10, 10));
    smallerCircle.getPaint().setColor(Color.BLACK);
    smallerCircle.setPadding(50,50,50,50);
    Drawable[] d = {smallerCircle,biggerCircle};

    LayerDrawable composite1 = new LayerDrawable(d);

    btn.setBackgroundDrawable(composite1); 

我需要的是使用起始度和结束度来绘制彩色区域。

这样的事情可能吗?

1 个答案:

答案 0 :(得分:3)

您可以使用库https://github.com/PhilJay/MPAndroidChart来实现此目的。

在xml中添加以下内容:

 <com.github.mikephil.charting.charts.PieChart
        android:id="@+id/chart"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

在java代码中:

PieChart chart = (Piechart) findViewById(R.id.chart);

示例代码:

https://github.com/PhilJay/MPAndroidChart/blob/master/MPChartExample/src/com/xxmassdeveloper/mpchartexample/PieChartActivity.java

这就是使用它的方式。

enter image description here