*/
public static void loadWinSize(Context ctx, Point winSize) {
WindowManager wm = (WindowManager) ctx.getSystemService(Context.WINDOW_SERVICE);
DisplayMetrics outMetrics = new DisplayMetrics();
if (wm != null) {
wm.getDefaultDisplay().getMetrics(outMetrics);
}
winSize.x = outMetrics.widthPixels;
winSize.y = outMetrics.heightPixels;
}
4).坐标系–路径:com.toly1994.c.view.analyze.HelpPath#cooPath
/**
- 坐标系路径
- @param coo 坐标点
- @param winSize 屏幕尺寸
- @return 坐标系路径
*/
public static Path cooPath(Point coo, Point winSize) {
Path path = new Path();
//x正半轴线
path.moveTo(coo.x, coo.y);
path.lineTo(winSize.x, coo.y);
//x负半轴线
path.moveTo(coo.x, coo.y);
path.lineTo(coo.x - winSize.x, coo.y);
//y负半轴线
path.moveTo(coo.x, coo.y);
path.lineTo(coo.x, coo.y - winSize.y);
//y负半轴线
path.moveTo(coo.x, coo.y);
path.lineTo(coo.x, winSize.y);
return path;
}
5).坐标系–绘制:com.toly1994.c.view.analyze.HelpDraw#drawCoo
/**
- 绘制坐标系
- @param canvas 画布
- @param coo 坐标系原点
- @param winSize 屏幕尺寸
- @param paint 画笔
/
public static void drawCoo(Canvas canvas, Point coo, Point winSize, Paint paint) {
//初始化网格画笔
paint.setStrokeWidth(4);
paint.setColor(Color.BLACK);
paint.setStyle(Paint.Style.STROKE);
//设置虚线效果new float[]{可见长度, 不可见长度},偏移值
paint.setPathEffect(null);
//绘制直线
canvas.drawPath(HelpPath.cooPath(coo, winSize), paint);
//左箭头
canvas.drawLine(winSize.x, coo.y, winSize.x - 40, coo.y - 20, paint);
canvas.drawLine(winSize.x, coo.y, winSize.x - 40, coo.y + 20, paint);
//下箭头
canvas.drawLine(coo.x, winSize.y, coo.x - 20, winSize.y - 40, paint);
canvas.drawLine(coo.x, winSize.y, coo.x + 20, winSize.y - 40, paint);
//为坐标系绘制文字
drawText4Coo(canvas, coo, winSize, paint);
}
/* - 为坐标系绘制文字
- @param canvas 画布
- @param coo 坐标系原点
- @param winSize 屏幕尺寸
- @param paint 画笔
*/
private static void drawText4Coo(Canvas canvas, Point coo, Point winSize, Paint paint) {
//绘制文字
paint.setTextSize(50);
canvas.drawText(“x”, winSize.x - 60, coo.y - 40, paint);
canvas.drawText(“y”, coo.x - 40, winSize.y - 60, paint);
paint.setTextSize(25);
//X正轴文字
for (int i = 1; i < (winSize.x - coo.x) / 50; i++) {
paint.setStrokeWidth(2);
canvas.drawText(100 * i + “”, coo.x - 20 + 100 * i, coo.y + 40, paint);
paint.setStrokeWidth(5);
canvas.drawLine(coo.x + 100 * i, coo.y, coo.x + 100 * i, coo.y - 10, paint);
}
//X负轴文字
for (i