Android中path基本使用总结

    xiaoxiao2021-03-25  96

    public class MyView extends View{ public MyView(Context context) { super(context); } public MyView(Context context, AttributeSet attrs) { super(context, attrs); } public MyView(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); } @Override protected void onDraw(Canvas canvas) { Paint mPaint=new Paint(); mPaint.setColor(Color.RED); mPaint.setStyle(Paint.Style.FILL);//填充内部 mPaint.setStyle(Paint.Style.FILL_AND_STROKE);//填充和描边 mPaint.setStyle(Paint.Style.STROKE);//描边 mPaint.setStrokeWidth(10);//画笔的粗细 Path mPath=new Path(); //例子九 mPath.moveTo(100,100); RectF rectF=new RectF(100,100,300,300); mPath.addRoundRect(rectF,10,10,Path.Direction.CW); canvas.drawPath(mPath,mPaint); //现象==圆角的正方形 // //例子八 // mPath.addCircle(200,200,50,Path.Direction.CW); // canvas.drawPath(mPath,mPaint); 现象--画个圆 //例子七 // mPath.moveTo(100,100); // RectF rectF=new RectF(100,100,400,500); // mPath.addRect(rectF,Path.Direction.CW); // //画个圆弧 // mPath.addArc(rectF,0,360); // //这两个一样,都是一个内切的圆形,长方形时是椭圆 // // mPath.addOval(rectF,Path.Direction.CW); // canvas.drawPath(mPath,mPaint); //例子六 // mPath.moveTo(100,100); // RectF rectF=new RectF(100,100,400,400); // mPath.addRect(rectF,Path.Direction.CW); // //画个圆弧 // mPath.addArc(rectF,0,180); // canvas.drawPath(mPath,mPaint); //现象--正方形的下部有个开口朝上的圆弧 //例子五 // mPath.moveTo(100,100); // mPath.quadTo(300,50,400,600); // canvas.drawPath(mPath,mPaint); //现象--这是一个赛贝尔曲线 //例子四 // mPath.moveTo(100,100);//起点 // mPath.lineTo(100,200); // mPath.rLineTo(300,100); // canvas.drawPath(mPath,mPaint); //现象--和三的区别是在第一次画的结束作为起点继续画 //例子三 // mPath.moveTo(200,200);//起点 // mPath.lineTo(300,300);//终点 // mPaint.setColor(Color.BLACK); // mPath.lineTo(400,500); // canvas.drawPath(mPath,mPaint); //到此是一个 从200,200画到300,300,再从200,200画到400,500 //例子一 // mPath.moveTo(200,200);//起点 // mPath.lineTo(300,300);//终点 //canvas.drawPath(mPath,mPaint); //到此--是一个起点为200,200终点为300,300的直线 //例子二 // mPath.moveTo(100,100); // mPath.lineTo(100,200); // mPath.rMoveTo(100,300); // mPath.lineTo(100,600); // canvas.drawPath(mPath,mPaint); //到此--是一个从100,100开始画到100,200,然后横向移动100,纵向移动300,然后以此作为起点画到100,600 super.onDraw(canvas); } }
    转载请注明原文地址: https://ju.6miu.com/read-13739.html

    最新回复(0)