
public class MyDrawView extends View{
private Paint mLinePaint,mTextPaint,mRectPaint;
public MyDrawView(Context context) {
super(context);
init();
}
public MyDrawView(Context context, @Nullable AttributeSet attrs) {
super(context, attrs);
init();
}
public MyDrawView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
init();
}
@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
public MyDrawView(Context context, @Nullable AttributeSet attrs, int defStyleAttr, int defStyleRes) {
super(context, attrs, defStyleAttr, defStyleRes);
init();
}
private void init() {
mLinePaint = new Paint();
mLinePaint.setColor(Color.BLUE);
mLinePaint.setStyle(Paint.Style.STROKE);
mLinePaint.setStrokeWidth(2);
mRectPaint = new Paint();
mRectPaint.setColor(Color.RED);
mRectPaint.setStyle(Paint.Style.FILL);
mTextPaint = new Paint();
mTextPaint.setColor(Color.BLUE);
mTextPaint.setStyle(Paint.Style.STROKE);
mTextPaint.setTextSize(20);
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
//X线 Y线
canvas.drawLine(100,1000,1000,1000,mLinePaint);
canvas.drawLine(100,100,100,1000,mLinePaint);
//量尺
for (int i=0;i<=8;i++){
int a=i*100;
canvas.drawText(String.valueOf(a),100-50,1000+25-a,mTextPaint);
}
String[] nameArray = new String[]{"司腾","杨总","康总","高俅"};
int[] scoreArray=new int[]{400,700,700,700};
//根据姓名看有多少个名字
for (int i=0;i<nameArray.length;i++){
//名字
int a = i * 200;//每个名字的间距
float textWidth = mTextPaint.measureText(nameArray[i]);
//x线名字地址
canvas.drawText(nameArray[i],200-textWidth/2+a,950+100,mTextPaint);
//画矩形
Rect rect = new Rect();
rect.left = 200-50+a;//间距是a
rect.right= 200+50+a;
rect.bottom = 1000;//矩形的底部,坐标不能改变
rect.top = rect.bottom-scoreArray[i];
canvas.drawRect(rect,mRectPaint);
}
}
}