本文讲述了Android使用自定义View实现饼状图的实例代码。分享给大家供大家参考,具体如下:
1.效果图
2.代码实现
public class PieChartView extends View {
private Paint mPaint;
private ListpieDataList;
// 饼状图初始绘制角度
private float mStartAngle = 0;
public PieChartView(Context context) {
this(context, null);
}
public PieChartView(Context context, @Nullable AttributeSet attrs) {
super(context, attrs);
init();
}
public void setData(List dataList){
if (null == dataList || dataList.size() == 0)
return;
pieDataList = dataList;
invalidate(); //触发onDraw
}
private void init() {
mPaint = new Paint();
mPaint.setAntiAlias(true);
mPaint.setStyle(Paint.Style.FILL);
mPaint.setStrokeWidth(4);
rectF = new RectF(100f, 100f, 600f, 600f); //正方形背景
}
private RectF rectF;
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
if (null == pieDataList || pieDataList.size() == 0)
return;
float currentAngle = mStartAngle;
for (int i = 0;i
3.使用:
int values[] = {30, 30, 40}; //右侧的图的数据,{10, 20, 70} 图左
List pieDataList = new ArrayList<>();
PieData pieData1 = new PieData();
pieData1.percentage = (float) values[0] / 100;
pieData1.angle = pieData1.percentage * 360;
pieData1.color = Color.RED;
pieDataList.add(pieData1);
PieData pieData2 = new PieData();
pieData2.percentage = (float) values[1] / 100;
pieData2.angle = pieData2.percentage * 360;
pieData2.color = Color.GREEN;
pieDataList.add(pieData2);
PieData pieData3 = new PieData();
pieData3.percentage = (float) values[2] / 100;
pieData3.angle = pieData3.percentage * 360;
pieData3.color = Color.YELLOW;
pieDataList.add(pieData3);
PieChartView pieChartView = new PieChartView(mContext);
pieChartView.setData(pieDataList);
addView(pieChartView);
疯狂医院达什医生中文版(Crazy Hospital)
疯狂医院达什医生最新版是一款医院模拟经营类游戏,逼真的场景画
宝宝庄园官方版
宝宝庄园官方版是一款超级经典好玩的模拟经营类型的手游,这个游
桃源记官方正版
桃源记是一款休闲娱乐类的水墨手绘风格打造的模拟经营手游。玩家
长途巴士模拟器手机版
长途巴士模拟器汉化版是一款十分比真好玩的大巴车模拟驾驶运营类
房东模拟器最新版2024
房东模拟器中文版是一个超级有趣的模拟经营类型的手游,这个游戏