Android开发智能车载App(2)---android paint和canvas自定义view

自定义过View的对这两个属性应该不陌生. Paint画笔Canvas画布. 有了这两个条件我们就可以做很多的事情.

如果你想设置一些属性如文字粗细,大小,颜色那么就使用Paint.

Paint:该类保存了绘制几何图形、文本和位图的样式和颜色信息。也就是说我们可以使用Paint保存的样式和颜色,来绘制图形、文本和bitmap,这就是Paint的强大之处。接下来我们使用Paint来绘图,并且看看该类有哪些样式和颜色。

当我们要自定义View的使用,要养成在构造函数中创建出了Paint画笔对象,而不是在onDraw(),因为onDraw可能会在后续中频繁的刷新,如果在这其中设置了一些初始化的操作,那么就毫无意义并且浪费资源.

我们看一个Paint的基本属性设置:

   mPaint = new Paint();                                             //使用paint前要对paint初始化
//开始设置画笔的基本信息 mPaint.setAntiAlias(true); //设置画笔的抗锯齿 mPaint.setColor(Color.WHITE); //设置画笔的颜色 mPaint.setStyle(Paint.Style.FILL); //设置画出的图形填充的类型,fill为内部填充,stroke为只有边框,内容不填充 mPaint.setStrokeWidth(mDensity * 2); //设置画笔的宽度. 接收实参为像素单位 mPaint.setTextSize(mDensity * 20); //设置当绘制文字的时候的字体大小
  mPaint.setStrokeCap(Paint.Cap.SQUARE);              //设置线帽,ROUND:圆形,SQUARE:方形

setStyle (Paint.Style style)

  • Paint.Style.FILL 填充内部
  • Paint.Style.FILL_AND_STROKE 填充并描边
  • Paint.Style.STROKE 仅描边不填充

如果你想直接画某一个图形那么就是用Canvas

Canvas类:该类规定了背景的颜色,以及绘制的形状

drawLine (float startX, float startY, float stopX, float stopY, Paint paint)//画直线
    //startX:开始点X坐标
    //startY:开始点Y坐标
    //stopX:结束点X坐标
    //stopY:结束点Y坐标
drawPoint (float x, float y, Paint paint)//画点
     
drawRect (float left, float top, float right, float bottom, Paint paint)//画矩形

drawRoundRect (RectF rect, float rx, float ry, Paint paint)//画圆角矩形
    //rx: 生成圆角椭圆的X轴的半径
    //ry: 生成圆角椭圆的Y轴的半径
drawCircle (float cx, float cy, float radius, Paint paint)//画圆形
    //cx: 圆心x点坐标
    //cy: 圆心y点坐标
    //radius: 圆的半径

drawArc (RectF oval, float startAngle, float sweepAngle, boolean useCenter, Paint paint)//画弧
    //startAngle: 起始点,默认为坐标系x轴的正方向为0, 正值为顺时针旋转,负值反之
    //sweepAngle: 从起始点开始需要显示的多少角度到结束点. 此角度正值为顺时针旋转.
    //useCenter: 是一个boolean,如果为true那么开始到圆心,和结束点到圆心都有连线.反之没有.

  

猜你喜欢

转载自www.cnblogs.com/suifengye/p/8947875.html