Android 绘图那些事

本文介绍了Android开发中的绘图基础,重点讲解了Canvas、Paint和Path三个核心API。Canvas作为画布,其坐标系的理解至关重要;Paint作为画笔,决定了图形的颜色、样式;而Path则用于定义绘制路径。通过对这些概念的掌握,开发者可以更好地实现自定义视图的绘制。
摘要由CSDN通过智能技术生成

一、概述



本周学习计划就顺利的进行到了我们的画图阶段,在本周的学习过程中主要是对画图中的三个比较重要的 API 进行了学习,这三个 API 分别是 Canvas 、Paint 和 Path,其实学习这些内容的原因都是为了之后的自定义 view 做准备的,我们都知道我们的自定义 view 里面的东西都是需要通过我们自己去绘制的,所以下面我们简单介绍一下我们常用的 API 和我在学习中遇到的问题



  

二、Canvas


Canvas 相信做过 Android 开发的都应该不陌生,我们通常叫他画布,其实如果我们想在 view 上面画一些内容,归根结底都是要通过 Canvas 的。那在说 Canvas 之前,我首先要说的一个东西就是坐标系,我们都知道,我们如果想绘制内容在 view 首先要知道绘制的位置,那这个位置就是通过坐标系去制定的。



坐标系:

坐标系分为两种,一种是 Canvas 坐标系,一种是绘图坐标系。

Canvas 坐标系:view 的左上角为0,0 ,坐标原点向右为x的正半轴,原点的向下为 y 的正半轴
绘图坐标系:
Canvas的drawXXX方法中传入的各种坐标指的都是绘图坐标系中的坐标,而非Canvas坐标系中的坐标。默认情况下,绘图坐标系与Canvas坐标系完全重合,即初始状况下,绘图坐标系的坐标原点也在View的左上角,从原点向右为x轴正半轴,从原点向下为y轴正半轴。但不同于Canvas坐标系,绘图坐标系并不是一成不变的,可以通过调用Canvas的translate方法平移坐标系,可以通过Canvas的rotate方法旋转坐标系,还可以通过Canvas的scale方法缩放坐标系,而且需要注意的是,translate、rotate、scale的操作都是基于当前绘图坐标系的,而不是基于Canvas坐标系,一旦通过以上方法对坐标系进行了操作之后,当前绘图坐标系就变化了,以后绘图都是基于更新的绘图坐标系了。也就是说,真正对我们绘图有用的是绘图坐标系而非Canvas坐标系。
那坐标系说的差不多了,下面切入我们的正题 Canvas


相关API
这里我只说几个当时学习的时候不是很理解的 API,其他常用的 API 在 https://developer.android.google.cn/index.html 官方文档上面看一下,前提是你英文比较好。

canvas.save 表示的是我们画布的当前状态,这个状态包括旋转,平移等。
canvas.restore 表示的回到我们上个 saver 保存的状态
drawOval 绘制椭圆四个参数的意义如下图

drawCircle 绘制圆形 需要传递圆心坐标和 radius
drawArc 绘制椭圆弧:
钟表的3点位置对应着0度,如果传入的startAngle小于0或者大于等于360,那么用startAngle对360进行取模后作为起始绘制角度。
useCenter是个boolean值,如果为true,表示在绘制完弧之后,用椭圆的中心点连接弧上的起点和终点以闭合弧;如果值为false,表示在绘制完弧之后,弧的起点和终点直接连接,不经过椭圆的中心点。就会把起点和终点连接成一条直线
drawRoundRect 绘制圆角矩形
drawRe
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值