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);
}
}
Android中path基本使用总结
最新推荐文章于 2024-03-06 01:16:19 发布