public class DrawView extends View { public DrawView(Context context, AttributeSet attrs) { super(context, attrs); } @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); Paint paint = new Paint();//定义默认画笔 //线性渐变 Shader shader = new LinearGradient(0,0,50,50, Color.RED,Color.GREEN,Shader.TileMode.MIRROR); paint.setShader(shader);//为画笔设置渐变器 canvas.drawRect(10,70,100,150,paint);//绘画一个矩形 //径向渐变 shader = new RadialGradient(160,110,50,Color.RED,Color.GREEN,Shader.TileMode.MIRROR); paint.setShader(shader);//为画笔设置渐变器 canvas.drawRect(115,70,205,150,paint); //角度渐变 shader = new SweepGradient(265,110,new int[]{Color.RED,Color.GREEN,Color.BLUE},null); paint.setShader(shader); canvas.drawRect(220,70,310,150,paint); }}
画奥运五环:
canvas.drawColor(Color.WHITE);//指定画布背景色为白色 Paint paint = new Paint();//创建画笔 paint.setAntiAlias(true);//使用抗锯齿功能 paint.setStrokeWidth(3);//设置笔触的宽度 paint.setStyle(Paint.Style.STROKE);//设置填充样式为描边 paint.setColor(Color.BLUE); canvas.drawCircle(50,50, 30, paint);//绘制蓝色的圆形 paint.setColor(Color.YELLOW); canvas.drawCircle(100,50,30,paint);//绘制黄色的圆形 paint.setColor(Color.BLACK); canvas.drawCircle(150,50,30,paint);//绘制黑色的圆形 paint.setColor(Color.GREEN); canvas.drawCircle(75,90,30,paint);//绘制绿色的圆形 paint.setColor(Color.RED); canvas.drawCircle(125,90,30,paint);//绘制红色的圆形绘制曲线
Paint paint = new Paint();//创建画笔 paint.setAntiAlias(true);//设置抗锯齿 paint.setColor(Color.RED);//设置画笔颜色 paint.setTextSize(18);//设置文字大小 paint.setStyle(Paint.Style.STROKE);//设置填充方式为描边 //绘制圆形路径图 Path path = new Path();//创建实例化一个Path对象 path.addCircle(70,70,40,Path.Direction.CCW);//添加逆时针圆形路径 canvas.drawPath(path,paint);//绘制路径 //绘制折线路径 Path pathLine = new Path(); pathLine.moveTo(150,100);//设置起始点 pathLine.lineTo(200, 45);//设置第一个直线结束点 pathLine.lineTo(250, 100);//设置第二个直线结束点 pathLine.lineTo(300,80);//设置第三个直线结束点 canvas.drawPath(pathLine,paint);//绘制路径 //绘制三角路径 Path pathTr = new Path(); pathTr.moveTo(350,80);//设置起始点 pathTr.lineTo(400, 0);//设置第一条边的结束点也就是第二条边的起始点 pathTr.lineTo(450, 80);//设置第二条的结束点也就是第三条边的起始点 pathTr.close(); canvas.drawPath(pathTr,paint); //绘制绕路径的环形文字 String str = "嘿嘿嘿嘿嘿嘿嘿嘿嘿嘿嘿"; Path path1 = new Path(); path.addCircle(550,100,48,Path.Direction.CW);//添加顺时针圆形路径 paint.setStyle(Paint.Style.FILL);//设置画笔的 填充方式 canvas.drawTextOnPath(str,path1,0,-18,paint);<com.weipeng.xuexi20160119.DrawView android:layout_width="wrap_content" android:layout_height="wrap_content" />