Android自定义View(一)(Paint和Canvas的基本使用)

Android开发中自定义视图是走向高手的必经之路,如何绘制漂亮的图形呢,让我们一起走进Android绘图的世界

相关文章:

《Android自定义View(二)(加载进度动画)》


想要自定义视图,第一步就是Paint和Canvas的基本使用,下面让我们来一起学习绘图中画笔和画布的基本使用。

一、Paint属性

   setAntiAlias: 设置画笔的锯齿效果。
   setColor: 设置画笔颜色
   setARGB:  设置画笔的a,r,p,g值。
   setAlpha:  设置Alpha值
   setTextSize: 设置字体尺寸。

   setShadowLayer:设置阴影
   setStyle:  设置画笔风格,空心或者实心。
   setStrokeWidth: 设置空心的边框宽度。
   getColor:  得到画笔的颜色
   getAlpha:  得到画笔的Alpha值。

二、Canvas属性

  1、填充

  drawARGB(int a, int r, int g, int b)
  drawColor(int color)
  drawRGB(int r, int g, int b)
  drawColor(int color, PorterDuff.Mode mode)

扫描二维码关注公众号,回复: 11434947 查看本文章

 2、几何图形

  canvas.drawArc (扇形)

  canvas.drawCircle(圆)

  canvas.drawOval(椭圆)

  canvas.drawLine(线)

  canvas.drawPoint(点)

  canvas.drawRect(矩形)

  canvas.drawRoundRect(圆角矩形)

  canvas.drawVertices(顶点)

  cnavas.drawPath(路径)

 3、图片

  canvas.drawBitmap (位图)

  canvas.drawPicture (图片)

三、介绍完基本属性

 //画空心圆

Paint paint = new Paint();
paint.setColor(Color.BLUE);
paint.setStyle(Paint.Style.STROKE);
paint.setStrokeWidth(10);
paint.setAntiAlias(true);
canvas.drawCircle(150,150,100,paint);

//画实心圆(修改画笔的Style即可)

Paint paint = new Paint();
paint.setColor(Color.BLUE);
paint.setAntiAlias(true);
canvas.drawCircle(150,150,100,paint);



//画矩形

Paint paint = new Paint();
paint.setColor(Color.BLUE);
paint.setStyle(Paint.Style.STROKE);
paint.setStrokeWidth(6);
paint.setAntiAlias(true);
canvas.drawRect(50, 150, 250, 350, paint);

//圆角矩形

Paint paint = new Paint();
paint.setColor(Color.BLUE);
paint.setStyle(Paint.Style.STROKE);
paint.setStrokeWidth(6);
paint.setAntiAlias(true);
RectF re2 = new RectF(40, 300, 150, 460);
canvas.drawRoundRect(re2, 15, 15, paint);
RectF re2 = new RectF(40, 300, 150, 460);
这四个   参数   分别代表的意思是: left   top   right   bottom   上下左右呗。啊,不是           下。   下面给大家解释   
left    矩形左边的 X 坐标  
top:     矩形顶部的 Y 坐标  
right :   矩形右边的 X 坐标   
bottom   矩形底部的 Y 坐标
canvas.drawRoundRect(re2, 15, 15, paint);

rect:RectF对象。

rx:x方向上的圆角半径。

ry:y方向上的圆角半径。

paint:绘制时所使用的画笔。



//根据Path进行绘制,绘制三角形

canvas.drawPath(path5, paint);
Path path = new Path();
path.moveTo(60, 60);
path.lineTo(160, 160);
path.lineTo(320, 80);
path.close();
canvas.drawPath(path, paint);


//绘制椭圆

Paint paint = new Paint();
paint.setColor(Color.BLUE);
paint.setStyle(Paint.Style.STROKE);
paint.setStrokeWidth(6);
paint.setAntiAlias(true);
RectF re31 = new RectF(170, 240, 430, 320);
canvas.drawOval(re31, paint);

//渐变器的使用

Paint paint = new Paint();
paint.setColor(Color.BLUE);
paint.setAntiAlias(true);
Shader mShader = new LinearGradient(0, 0, 40, 60, new int[]{
                Color.RED, Color.GREEN, Color.BLUE, Color.YELLOW}, null,
                Shader.TileMode.REPEAT);
paint.setShader(mShader);
RectF re31 = new RectF(170, 240, 430, 320);
canvas.drawOval(re31, paint);
创建LinearGradient并设置渐变颜色数组   
第一个,第二个参数表示渐变起点 可以设置起点终点在对角等任意位置  
第三个,第四个参数表示渐变终点  
第五个参数表示渐变颜色  
第六个参数可以为空,表示坐标,值为0-1 new float[] {0.25f, 0.5f, 0.75f, 1 }  
如果这是空的,颜色均匀分布,沿梯度线。  
第七个表示平铺方式  




到这里你应该已经会绘制很多图形了,其实都是大同小异,熟悉了这些绘制,自定义视图据离你越来越近了

猜你喜欢

转载自blog.csdn.net/u014752325/article/details/51278432