//画布宽度
canvasWidth = canvas.getWidth();
//画布高度
canvasHeight = canvas.getHeight();
widthCriterion = canvasWidth /10; //将画布宽分为10份
hightCriterion = canvasHeight /10; //将画布高分为10份
minCriterion = widthCriterion > hightCriterion ? hightCriterion /2: widthCriterion /2; //画xy轴角的依据
daxesPaint=new Paint();
daxesPaint.setColor(Color.BLACK);
daxesPaint.setAntiAlias(true); //去掉锯齿效果
daxesPaint.setStrokeWidth(7.0f);//画笔宽度
//第一个方法:画xy轴
drawDaxes(canvas,daxesPaint);
//开始绘制xy轴坐标
axispointPaint=daxesPaint;
drawAxispoint(canvas,axispointPaint);
//开始绘制折线和坐标点
brokenLinePaint=axispointPaint;
brokenLinePaint.setStrokeWidth(5.0f);
drawbrokenLine(canvas,brokenLinePaint);
}
private void drawDaxes(Canvas canvas,Paint p){
//开始y绘制坐标系
canvas.drawLine(widthCriterion,hightCriterion,widthCriterion,hightCriterion*9,p);
//绘制y角
canvas.drawLine(widthCriterion-minCriterion,hightCriterion+minCriterion,widthCriterion+2,hightCriterion,p);
canvas.drawLine(widthCriterion,hightCriterion,widthCriterion+minCriterion-2,hightCriterion+minCriterion,p);
//开始x绘制坐标系
canvas.drawLine(widthCriterion-4,hightCriterion9,widthCriterion9,hightCriterion*9,p);
//绘制x角
canvas.drawLine(widthCriterion9-minCriterion,hightCriterion9-minCriterion,widthCriterion9,hightCriterion9+2,p);
canvas.drawLine(widthCriterion9-minCriterion,hightCriterion9+minCriterion,widthCriterion9,hightCriterion9-2,p);
}
private void drawAxispoint(Canvas canvas,Paint p){
textFont=widthCriterion/5*2;
Typeface font = Typeface.create(Typeface.SANS_SERIF, Typeface.BOLD);
p.setTypeface( font );
p.setTextSize(textFont);
for (int i = 1; i <=8 ; i++) {
String text= String.valueOf(-1+i);
int stringWidth = (int) p.measureText(text); //文本长度
canvas.drawText(text, iwidthCriterion-stringWidth/2, hightCriterion9+textFont, p);// 画文本
}
for (int i = 1; i <=7 ; i++) {
String text= String.valueOf(i);
int stringWidth = (int) p.measureText(text);
//文本长度
canvas.drawText(text, widthCriterion-textFont, hightCriterion9-ihightCriterion+stringWidth/2, p);// 画文本
}
}
private void drawbrokenLine(Canvas canvas,Paint p){
canvas.drawLine(widthCriterion,hightCriterion9,widthCriterion2,hightCriterion*2,p);
canvas.drawLine(widthCriterion2,hightCriterion2,widthCriterion3,hightCriterion5,p);
canvas.drawLine(widthCriterion3,hightCriterion5,widthCriterion4,hightCriterion7,p);
canvas.drawLine(widthCriterion4,hightCriterion7,widthCriterion5,hightCriterion6,p);
canvas.drawLine(widthCriterion5,hightCriterion6,widthCriterion6,hightCriterion7,p);
canvas.drawLine(widthCriterion6,hightCriterion7,widthCriterion7,hightCriterion2,p);
canvas.drawLine(widthCriterion7,hightCriterion2,widthCriterion8,hightCriterion3,p);
//画折线上的点
canvas.drawCircle(widthCriterion, hightCriterion*9, 10, p);
canvas.drawCircle(widthCriterion2,hightCriterion2, 10, p);
canvas.drawCircle(widthCriterion3,hightCriterion5, 10, p);
canvas.drawCircle(widthCriterion4,hightCriterion7, 10, p);
canvas.drawCircle(widthCriterion5,hightCriterion6, 10, p);
<