public class ZheView extends View {
private Paint paint;
private final static int textSize=20;
private final static int startX=100;
private final static int startY=800;
private Path path;
private int color;
public ZheView(Context context) {
super(context);
}
public ZheView(Context context, AttributeSet attrs) {
super(context, attrs);
initView();
//自定义属性
TypedArray typedArray = context.obtainStyledAttributes(attrs, R.styleable.ZheView);
color = typedArray.getColor(R.styleable.ZheView_paint_color, Color.WHITE);
typedArray.recycle();
}
public ZheView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
initView();
TypedArray typedArray = context.obtainStyledAttributes(attrs, R.styleable.ZheView);
color = typedArray.getColor(R.styleable.ZheView_paint_color, Color.WHITE);
typedArray.recycle();
}
private void initView() {
paint = new Paint();
paint.setColor(color);//自定义属性颜色
paint.setStyle(Paint.Style.STROKE);
paint.setTextSize(textSize);
paint.setColor(Color.RED);
paint.setStrokeWidth(1);
path = new Path();
path.moveTo(startX,startY);
}
@Override
protected void onDraw(Canvas canvas) {
canvas.drawPath(path,paint);
//x轴
canvas.drawLine(startX,startY,800,startY,paint);
//y轴
canvas.drawLine(startX,startY,startX,100,paint);
for (int i = 100; i <=600 ; i+=100) {
String text=i+"";
float textWidth = paint.measureText(text);
canvas.drawText(text,startX+i-textWidth/2,startY+textSize,paint);
canvas.drawText(text,startX-textWidth,startY-i+textSize,paint);
}
}
public void addPoi(int x,int y) {
path.lineTo(startX+x,startY-y);
invalidate();
}
}
在MainActivity中写入
int arX[]={100,200,300,400,500};
int arY[]={80,300,100,530,400};
for (int i = 0; i <5 ; i++) {
zhe_view.addPoi(arX[i],arY[i]);
}
自定义属性xml页面