代码地址如下:
http://www.demodashi.com/demo/14723.html

####前言
在之前讲过画笔Paint的基本使用,这篇文章让我们来了解下画布—Canvas的基本使用。
相关文章:
自定义控件概述
Paint的基本使用

今天讲解的内容有:

  1. Canvas设置背景
  2. Canvas画Point
  3. Canvas画直线
  4. 矩形构造方法
  5. canvas画矩形
  6. Color颜色的构建和提取
  7. Canvas用直线画"正"字示例
  8. 项目结构图和效果图
    #####一.Canvas设置背景
    canvas设置背景有三种方法:
// canvas.drawARGB(23,55,70,32);
// canvas.drawRGB(77,120,240);canvas.drawColor(Color.WHITE);

#####二.Canvas画Point
canvas画点的方法如下:

        Paint paint=new Paint();paint.setColor(Color.RED);//设置颜色//画点的时候,Paint的style设置无效,故此处不设置Paint.Stylepaint.setStrokeWidth(30f);//画点canvas.drawPoint(500,100,paint);//注:画出的点是方块,而不是圆.

需要注意的是,画点时,设置Paint的style无效,且画出来的点不是圆的,而是实心小方块。
#####三.Canvas画直线
canvas画直线的方法如下:

canvas.drawLine(float startX,float startY,float stopX,float stopY,Paint paint);

其中 startX:画线起点x坐标
startY:画线起点y坐标
stopX: 画线结束点x坐标
stopY: 画线结束点y坐标
#####四.矩形构造方法
矩形分为 Rect 和 RectF 两个类,这两个类的用法基本一样,区别是 Rect 构造的时候,对应传的坐标值为 int 数据类型,而RectF 构造的时候,对应传的坐标值为 float 数据类型
######4.1 Rect的构造方法

Rect rect=new Rect();
Rect rect=new Rect(Rect r);
Rect rect=new Rect(int left,int top,int right,int bottom);

######4.2 RectF的构造方法

RectF rectf=new RectF();
RectF rectf=new RectF(Rect r);
RectF rectf=new RectF(RectF rf);
RectF rectf=new RectF(float left,float top,float right,float bottom);

#####五.canvas画矩形
canvas画矩形有两种方式,直接画矩形或先构造矩形,然后将矩形设置到canvas上
######5.1 canvas直接画矩形

canvas.drawRect(float left,float top,float right,float bottom,Paint paint);

注意 canvas直接画矩形的时候,坐标参数为float类型。
######5.2 先画矩形,再设置到画布上
canvas设置矩形的方法是这样的:

        canvas.drawRect(Rect rect,Paint paint);canvas.drawRect(RectF rectf,Paint paint);

若想在canvas上画矩形,你可以这样:

Rect rect=new Rect(50,450,200,600);
canvas.drawRect(rect,paint);

或者像这样:

        Rect rect=new Rect();rect.set(50,450,200,600);canvas.drawRect(rect,paint);

#####六. Color颜色的构建和提取
######6.1 Color颜色的构建

         Color.argb(int alpha,int red,int green,int blue);Color.rgb(int red,int green,int blue);

######6.2 Color颜色的提取

         int alpha=Color.alpha(0xff5e73df);int red=Color.red(0xff5e73df);int green=Color.green(0xff5e73df);int blue=Color.blue(0xff5e73df);

#####七.Canvas用直线画"正"字示例
具体代码demo中有,这里主要介绍下自定义控间Canvas在MainActivity对应的activity_main.xml中的引用代码如下:

<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:background="@color/white"tools:context="com.android.testdemo.main.MainActivity"><com.android.testdemo.animation.CanvasViewandroid:layout_width="match_parent"android:layout_height="match_parent"/>
</android.support.constraint.ConstraintLayout>

#####八. 项目结构图和效果图

项目结构图

效果图

Canvas的基本用法

代码地址如下:
http://www.demodashi.com/demo/14723.html

注:本文著作权归作者,由demo大师发表,拒绝转载,转载需要作者授权

Canvas的基本用法相关推荐

  1. HTML5 Canvas的基本用法

    基本用法 使用 <canvas> 标签在页面上创建画布元素,画布一旦创建,就可以使用Javascript提供的一套强大的Canvas API编写代码,在画布中绘制任意图形,甚至加入高级动画 ...

  2. 在浏览器上画图(canvas的基本用法)

    在HTML5里,我们可以通过canvas标签来在浏览器里进行画图,但是这个标签并不是能画图的,画图还是要通过JavaScript,这个标签只是一个载体.在canvas这个标签里,默认的width是30 ...

  3. 1、Canvas的基本用法

    1.Canvas是什么? HTML5 的 canvas 元素使用 JavaScript 在网页上绘制图像. 画布是一个矩形区域,您可以控制其每一像素. canvas 拥有多种绘制路径.矩形.圆形.字符 ...

  4. Canvas绘图基本用法

    :点上面关注免费学习前端知识! 要使用 <canvas> 元素,必须先设置其 width 和 height 属性,指定可以绘图的区域大小.出现在开始和结束标签中的内容是后备信息,如果浏览器 ...

  5. php绘图和canvas,html5 canvas画图实例用法汇总

    HTML5 canvas画图HTML5 标签用于绘制图像(通过脚本,通常是 JavaScript).不过, 元素本身并没有绘制能力(它仅仅是图形的容器) - 您必须使用脚本来完成实际的绘图任务.get ...

  6. html5使用阴影,HTML5 Canvas阴影用法演示

    HTML5 Canvas阴影用法演示 HTML5 Canvas中提供了设置阴影的四个属性值分别为: context.shadowColor = "red" 表示设置阴影颜色为红色 ...

  7. canvas 圆角矩形填充_一篇文章让你学会你最“害怕”的Canvas,太有意思了

    Canvas画布 基本用法 <canvas id='canvas' width="150" height="150"></canvas> ...

  8. android中画弧函数canvas.drawArc()之理解

    在学习android中图形图像处理技术这部分内容时,对绘制圆弧函数canvas.drawArc()的用法.参数含义及画图原理很是不理解,在网上搜索了一些,加上自己的理解,在此做个小总结,作为学习过程中 ...

  9. HTML5 Canvas 2D绘图

    为了防止无良网站的爬虫抓取文章,特此标识,转载请注明文章出处.LaplaceDemon/ShiJiaqi. http://www.cnblogs.com/shijiaqi1066/p/4851774. ...

最新文章

  1. 使用姿势估计进行跌倒检测
  2. Linux大文件传输(转)
  3. Javascript 思维导图
  4. java学习(48):带参带返回
  5. Linux驱动(4)--Linux的启动流程
  6. 基于Spring Boot 的统一错误处理
  7. php.ini修改php上传文件大小限制的方法
  8. 京东店铺数据分析工具推荐
  9. 数据挖掘--非负矩阵分解
  10. matlab面板数据处理程序,MATLAB空间面板数据模型操作简介
  11. VMWARE启动失败
  12. 蓝雪花怎么养 蓝雪花养殖方法及注意事项
  13. 浙大 | PTA 习题5-6 使用函数输出水仙花数 (20分)
  14. java 在线 excel文件_Java实现最简单的在线打开保存Excel文件 - PageOffice
  15. 用git连接gitee
  16. javascript设计模式-单例模式(singleton pattern)
  17. Linux I2C驱动框架(超详细)
  18. 技术总监/技术leader 职责与工作记录 第一天
  19. 你给文字描述,AI艺术作画,精美无比!附源码,快来试试!
  20. 手动制作U盘启动盘(确保纯净的win系统)

热门文章

  1. linux下dds软件,【数据库】Linux 单实例环境下实现Oracle数据库和DDS软件的开机自动重启...
  2. PHP项目异常类该如何设计,浅谈 PHP 中异常类的使用
  3. 路由相关的初始化(二)
  4. python爬虫实现方式_python爬虫的实现方法
  5. java复习系列[5] - Java 中的设计模式
  6. 【Java数据结构与算法】第十九章 贪心算法、Prim算法和Kruskal算法
  7. 【高校宿舍管理系统】第一章 建立数据库以及项目框架搭建
  8. 力扣914.卡牌分组
  9. 微信小程序|开发实战篇之七-steps进度条组件
  10. 配置win2003 server IIS的总结,为什么IIs的工作进程会在空闲时间释放的问题。同时学会了throw的真正含义,throw的真正含义就是导致程序停止,崩溃,很简单,网摘也有记录。...