画图,

在这里插入图片描述

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);
        }
    }
}

猜你喜欢

转载自blog.csdn.net/qq_42828101/article/details/84591039