面积图实现效果图:
面积图实现代码:
package mychart;
import java.util.List;
import android.content.Context;
import android.graphics.BlurMaskFilter;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Paint.Align;
import android.graphics.Path;
import android.view.View;
public class AreaView extends View{
private int axisColor; // 轴线颜色
private float axisWith; // 轴线宽度
private int[] lineColor; // 数据线/点颜色
private int[] lineWidth; // 数据线/点宽度
private int textColor; // 文本颜色
private int textSize; // 文本字体
private int leftMargins; // 左边距
private int rightMargins; // 右边距
private int bottomMargins; // 下边距
private int topMargins; // 上边距
private float XScale; // X的刻度长度
private int xLength; // X轴的长度
private int YScale; // Y的刻度长度
private int yLength; // Y轴的长度
private List<int[]> data; // y轴数据
private String[] xData; // x轴数据
private boolean hasYAxis; // 显示Y轴轴线
private boolean hasXAxis; // 显示X轴轴线
private boolean hasYScale; // 显示Y轴刻度
private boolean hasXScale; // 显示X轴刻度
private int initX; // 原点X
private int initY; // 原点Y
private Paint axisPaint, textPaint, linePaint, areaPaint;
private int[] colors = new int[]{Color.BLUE, Color.CYAN, Color.RED, Color.GREEN, Color.YELLOW};
//构造函数
public AreaView(Context context) {
super(context);
}
public AreaView(Context context, List<int[]> data, String[] xData) {
super(context);
setData(data, xData);
setLineColor(colors);
}
public AreaView(Context context, List<int[]> data, int[] color, String[] xData) {
super(context);
setData(data, xData);
setLineColor(color);
}
protected void onDraw(Canva