本文要介绍的是一个参照手机支付宝app里面记账本功能里的“饼状图”实现的控件。通常app中可能的数据展示控件有柱状图,折线图,饼状图等,如果需要一个包含多种View控件的库,那么 MPAndroidChart 是不错的选择,如果只是需要一个简单的独立的饼状图控件,希望PieGraphView满足你的要求。
控件介绍
效果图如下:
目前实现的饼状图的效果如下所示,和支付宝app记账本中的功能基本一样:

控件功能:
展示的数据
可以展示多组数据(ItemGroup),每次展示一组数据,一组数据对应形成一个圆环。一组数据由多个Item组成,对应圆环中的扇形。
public static class ItemGroup { public String id; public Item[] items;
} public static class Item { public double value; public int color; public String id;
}圆环
一个ItemGroup最终显示为一个圆环。它的中的items是包含的数据项。这些数据项根据其value占总数据的比例对应不同的扇形角度。ItemGroup的所有Item依次绘制,形成360°。起始角度和旋转
所有角度值是X正轴开始顺时针增加。圆环有一个开始角度使用字段mStartAngle表示,所有扇形的绘制是从mStartAngle开始的,它是0-360度的数值,例如可以设置为90让绘制从正下方开始等。圆环可以旋转,旋转是针对mStartAngle而言的。选中并高亮Item
点击可以选择一个扇形,选中的扇形作为“当前项”,使用字段int mCurrentItem记录它的索引。选择一个扇形后,它会旋转其中间角度到mStartAngle的角度,然后对应扇形执行“grow”动画进行高亮突出。
