Android中path基本使用总结

来源:互联网 发布:投资项目经济评价软件 编辑:程序博客网 时间:2024/06/08 08:07
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);    }}

0 0
原创粉丝点击