zoukankan      html  css  js  c++  java
  • 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那么开始到圆心,和结束点到圆心都有连线.反之没有.

      

  • 相关阅读:
    zookeeper安装
    Xmemcached的FAQ和性能调整建议
    memcache命令
    xmemcached的使用
    从硬币游戏学习敏捷开发
    memcached安装
    系统负载能力浅析
    kubernetes1.18安装metrics-server服务
    启动docker run 报错:iptables No chain/target/match by that name
    docker容器内apt更换国内阿里源
  • 原文地址:https://www.cnblogs.com/suifengye/p/8947875.html
Copyright © 2011-2022 走看看