android canvas_Android 自定义View篇(二)Canvas详解

bb3c2483a310fe6a714f9f9a8fba3723.png

作者:宋者为王

连接:https://cnblogs.com/andy-songwei/p/10960012.html

前言

上一篇讲 View 的绘制流程中讲到过,最后一步是 draw 流程,在这个过程中,子 view 需要重写 onDraw 方法来画出自己的内容。在自定义 View 绘制自身内容的时候,系统提供了 3 个非常重要的类来帮助开发者画各种炫酷的图形:Canvas、Paint、Path。本篇主要介绍 Canvas 相关的内容,Paint 和 Path 在后面会单独再做介绍。官方文档中介绍的 Canvas 相关的 API 很多,本文主要介绍和梳理一些比较常用的实用功能。

本文的主要内容如下:

5d40785dec05c4e4c105c2a7f05365fb.png

一、一切的开始——onDraw

如下代码展示了一个自定义 view 画图形的一个非常简单的示例。这里 onDraw 方法的参数 Canvas 就是本篇的主角了,中文意思“画布”,意思就是所有“画”的内容都是在这张画布上完成的。

Paint paint = new Paint();
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
// 绘制一个原点坐标(300,300),半径为200的圆
canvas.drawCircle(300, 300, 200, paint);
}

代码非常简单,可见自定义绘制上手非常容易。

二、Canvas 基本的 draw 功能

Canvas 包含了一些画基本图案的函数,基本都是以 drawXXX 的形式给出的。

1、坐标系

这里先简单介绍一下画图中所参照的坐标系,是以当前 View 位置的左上角为原点(0,0),水平方向向右为 X 轴正方向,竖直向下为 Y 轴正方向,这里的 View 位置是个相对值,它取决于开发者把它放在哪里。坐标系大致如下所示,注意和平时我们数学上坐标系略有差别。

3e112f55c224e303a1f373832f146b42.png

2、Paint

在 Canvas 的这些 drawXXX 方法中会用到 paint 类,它是画笔,会决定绘制出来的图形的颜色,是填充整个图形还是仅绘制边框线条等多个属性。这些会在以后专门介绍 Paint 的时候再讲,这里先提醒读者注意,在笔者截取的效果图中,咱们这里先只关注形状,关于 piant,一律先用默认的填充。

3、drawColor()颜色填充

  1. 函数原型:drawColor(@color int color)。

  2. 作用:将整个绘制区域填充为指定颜色(可以设置透明度)。

  3. 示例:一般有三种方式来引用颜色值

//使用系统提供的颜色
canvas.drawColor(Color.BLACK);
//使用自定义颜色
canvas.drawColor(Color.parseColor("#000000"));
//使用color.xml中定义的颜色值
canvas.drawColor(ge
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值