Android应用开发Android 基础图形绘制API常用方法
白羽 2019-03-12 来源 :网络 阅读 645 评论 0

摘要:本文将带你了解Android应用开发Android 基础图形绘制API常用方法,希望本文对大家学Android有所帮助。

    本文将带你了解Android应用开发Android 基础图形绘制API常用方法,希望本文对大家学Android有所帮助。



Android应用开发Android 基础图形绘制API常用方法



    Canvas类常用的方法:
   
    //画点(使用指定的Paint填充整个Canvas )
    drawPoint(float x, float y, Paint paint)
    //画线(多条)
    drawLine(float startX, float startY, float stopX, float stopY, Paint   paint)
    drawLine(s)  
    //绘制区域
    drawRect(RectF rect, Paint paint)
    drawRoundRect   绘制一个圆角矩形。
    //绘制图片
    drawBitmap(Bitmap bitmap, Rect src, Rect dst, Paint paint)
    drawPicture     在指定的矩形中绘制一个Picture对象。
    //渲染文本
    drawText(String text, float x, floaty, Paint paint)
    drawPosText     绘制指定了每一个字符的偏移量的文本字符串。
     drawTextOnPath   在一个指定的path上绘制文本。
    //绘制路径
    drawPath(Path path, Paint paint)   
    //画椭圆
    drawOval(RectF oval, Paint paint)
    //画圆
    drawCircle(float cx, float cy, float radius,Paint paint)
    //画弧
    drawArc(RectF oval, float startAngle, float sweepAngle, boolean useCenter,   Paint paint)
    drawVertices   绘制一系列三角形面片,通过一系列顶点来指定它们。
    drawARGB / drawRGB / drawColor     使用单一的颜色填充画布。
    drawBitmapMesh     使用一个mesh(网)来绘制一个位图,它可以通过移动网中的点来操作目标的外观。
    下面通过例子详细说明上述方法:
    1. 画点 drawPoint
    (1) 单点:
   
    drawPoint(float x, float y, Paint paint)
    参数:
    float X:点的X坐标
    float Y:点的Y坐标
   
 
    Paint paint = new Paint();
    paint.setColor(Color.BLUE);
    paint.setStrokeWidth(30);
    canvas.drawPoint(100, 100, paint);

   
   
    (2) 填充整个Canvas:
   
    drawPoint(Paint paint)
    参数:
    Paint paint:填充Canvas的画笔

    Paint paint = new Paint();
    paint.setColor(Color.BLUE);
    canvas.drawPaint(paint);

   
   
    (3) 多个点 :
   
    public void drawPoints(float[] pts, Paint paint)
    参数:
    float[] pts: 点的集合,从第一个开始两两一组为一个点,元素个数必须是偶数,形如:pts = {x1, y1, x2, y2, x3,   y3, ……};
   

    Paint paint = new Paint();
    paint.setColor(Color.BLUE);
    paint.setStrokeWidth(30);
    float [] points = new float[]{20, 20, 100, 100, 250, 250, 450, 450};
    canvas.drawPoints(points,   paint);

   
   
    public void drawPoints(float[] pts, int offset, int count, Paint   paint)
    参数:
    float[] pts: 点的集合,从第一个开始两两一组为一个点,元素个数必须是偶数,形如:pts = {x1, y1, x2, y2, x3,   y3, ……};
    int offset: 点的集合 pts 数组中省去不绘制的数的个数,两个数为一个点;可以为奇数,但绘制的点会位置不正确;
    count: 参与绘制的 pts 数组中数的个数,两个数为一个点,必需为偶数;
   
 
    Paint paint = new   Paint();
    paint.setColor(Color.BLUE);
    paint.setStrokeWidth(30);
    float [] points = new float[]{20, 20, 100, 100, 250, 250, 450, 450};
    canvas.drawPoints(points, 2, 4,   paint);

   
   
    如果将 offset 改为 1,即:
   

    Paint paint = new   Paint();
    paint.setColor(Color.BLUE);
    paint.setStrokeWidth(30);
    float [] points = new float[]{20, 20, 100, 100, 250, 250, 450, 450};
    canvas.drawPoints(points, 1, 4,   paint);

    效果如下:
   
   
    2. 画直线 drawLine()
    (1) 一条直线:
   
    public void drawLine(float startX, float startY, float stopX, float stopY,   Paint paint)
    参数:
    float startX : 起点横坐标;
    float startY : 起点纵坐标;
    float stopX : 终点横坐标;
    float stopY : 终点纵坐标;
    Paint paint : 画笔;
   
 
    Paint paint =   new Paint();
    paint.setColor(Color.GREEN);
    paint.setStrokeWidth(20);
    canvas.drawLine(30, 30, 150, 150,   paint);

   
   
    (1) 多条直线:
   
    public void drawLines(float[] pts, Paint paint)
    参数:
    float[] pts: 点的集合,从第一个开始两两一组为一个点,元素个数必须是偶数,形如:pts = {x1, y1, x2, y2, x3,   y3, ……};
    Paint paint : 画笔;

      Paint   paint = new Paint();
    paint.setColor(Color.GREEN);
    paint.setStrokeWidth(20);
    float[] points = new float[]{30, 30, 150, 150, 250, 250, 400, 400};
    canvas.drawLines(points,   paint);

   
   
    public void drawLines(float[] pts, int offset, int count, Paint   paint)
    参数:
    float[] pts: 点的集合,从第一个开始两两一组为一个点,元素个数必须是偶数,形如:pts = {x1, y1, x2, y2, x3,   y3, ……};
    int offset: 点的集合 pts 数组中省去不绘制的数的个数,两个数为一个点;可以为奇数,但绘制的点会位置不正确;
    count: 参与绘制的 pts 数组中数的个数,两个数为一个点,必需为偶数;
    Paint paint : 画笔;
   

      Paint   paint = new Paint();
    paint.setColor(Color.GREEN);
    paint.setStrokeWidth(20);
    float[] points = new float[]{30, 30, 150, 150, 250, 250, 400, 400};
    canvas.drawLines(points,   paint);

   
   
    3. 画矩形 drawRect
    public void drawRect(RectF rect, Paint paint)
    参数:
    RectF rect 矩形区域
    Paint paint : 画笔;
   

    Paint   paint = new Paint();
    paint.setColor(Color.GREEN);
    paint.setStrokeWidth(20);
    paint.setStyle(Paint.Style.STROKE);
     
    RectF rectF = new RectF();
    rectF.left = 50;
    rectF.top = 50;
    rectF.right = 400;
    rectF.bottom = 200;
     
    canvas.drawRect(rectF,   paint);

   
   
    4. 画椭圆 drawOval
    public void drawRect(RectF rect, Paint paint)
    参数:
    RectF rect 矩形区域, 椭圆的绘制是在一个矩形区域完成的
    Paint paint : 画笔;
   
    public void drawOval(float left, float top, float right, float bottom,   Paint paint)

    Paint   paint = new Paint(); //椭圆画笔
    paint.setColor(Color.GREEN);
    paint.setStrokeWidth(5);
    paint.setStyle(Paint.Style.STROKE);
     
    Paint paint1 = new Paint(); //椭圆所在矩形区域画笔
    paint1.setColor(Color.RED);
    paint1.setStrokeWidth(5);
    paint1.setStyle(Paint.Style.STROKE);
     
    RectF rectF = new RectF();
    rectF.left = 50;
    rectF.top = 50;
    rectF.right = 400;
    rectF.bottom = 200;
     
    canvas.drawRect(rectF, paint1);//画出矩形,为了更加形象显示椭圆的绘制规则
    canvas.drawOval(rectF,   paint);//绘制椭圆

   
   
        

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标移动开发之Android频道!

本文由 @白羽 发布于职坐标。未经许可,禁止转载。
喜欢 | 1 不喜欢 | 0
看完这篇文章有何感觉?已经有1人表态,100%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程