手把手教你用手把手教你用Android自定义饼状图自定义饼状图
照例先上效果图照例先上效果图
通过该例子,你能学到什么:通过该例子,你能学到什么:
对Paint 深入理解,画绘制饼图,矩形,文字等
加深对canvas的API的掌握,对自定义View掌握
下面我们分七步来完成一个简单的饼形图绘制过程。下面我们分七步来完成一个简单的饼形图绘制过程。
1. 重新重新View的构造方法的构造方法
public PieView(Context context) {
this(context, null);
}
public PieView(Context context, AttributeSet attrs) {
this(context, attrs, 0);
}
public PieView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
init();
}
private void init() {
mPieColorList = new ArrayList<>();
mPieValue = new ArrayList<>();
mStringList = new ArrayList<>();
mPaint = new Paint();
mMaxString = "";
mPaint.setColor(Color.BLACK);
mPaint.setStrokeWidth(10);//画笔宽度
mPaint.setAntiAlias(true);//抗锯齿
}
2.绘制图形绘制图形
/**
* 绘制饼图
*
* @param canvas
* @param amount
*/
private void drawPie(Canvas canvas, int amount) {
mPaint.setColor(mCurrentColor);
mPaint.setStyle(Paint.Style.FILL);
int angle = (int) (360f * amount / mMaxValue);
Log.d("angle", "drawPie: " + angle);
canvas.drawArc(oval, mStartAngle, angle, true, mPaint);
mStartAngle += angle;