Android中有一个Canvas类,Canvas类就是表示一块画布,你可以在上面画你想画的东西。当然,你还可以设置画布的属性,如画布的颜色/尺寸等。Canvas提供了如下一些方法:

Canvas():创建一个空的画布,可以使用setBitmap()方法来设置绘制的具体画布;

Canvas(Bitmapbitmap):以bitmap对象创建一个画布,则将内容都绘制在bitmap上,bitmap不得为null;

Canvas(GLgl):在绘制3D效果时使用,与OpenGL有关;

drawColor:设置画布的背景色;

setBitmap:设置具体的画布;

clipRect:设置显示区域,即设置裁剪区;

isOpaque:检测是否支持透明;

rotate:旋转画布;

canvas.drawRect(RectF,Paint)方法用于画矩形,第一个参数为图形显示区域,第二个参数为画笔,设置好图形显示区域Rect和画笔Paint后,即可画图;

canvas.drawRoundRect(RectF, float, float, Paint)方法用于画圆角矩形,第一个参数为图形显示区域,第二个参数和第三个参数分别是水平圆角半径和垂直圆角半径。

canvas.drawLine(startX, startY, stopX, stopY,paint):前四个参数的类型均为float,最后一个参数类型为Paint。表示用画笔paint从点(startX,startY)到点(stopX,stopY)画一条直线;

canvas.drawArc(oval,startAngle, sweepAngle,

useCenter,paint):第一个参数oval为RectF类型,即圆弧显示区域,startAngle和sweepAngle均为float类型,分别表示圆弧起始角度和圆弧度数,3点钟方向为0度,useCenter设置是否显示圆心,boolean类型,paint为画笔;

canvas.drawCircle(float,float, float,Paint)方法用于画圆,前两个参数代表圆心坐标,第三个参数为圆半径,第四个参数是画笔;

清楚这些函数的用法之后,我们是否就噼里啪啦地敲代码了呢?别急,我们来搞个设计。既然这些函数都是用来画图的,也就是说它们有共性——画。所有我们应该设计一个接口interface,对于这次任务,只需要一个成员方法就足够了。对于每一个图形,是只用一个方法画,还是将画图封装成类呢?我建议是封装成类。因为说不定你明天就会嫌弃它不会动,想它动起来,或者你过两天又希望在图的每个部位加点什么。所以我将每一个图形封装成类,都实现一个名叫drawGraphics的接口。最后,要记得给UI创建一个线程哦。

不过要注意的是这里的Rect跟Java的Rectangle是不一样的,原来这厮跟MFC中的RECT结构才是一家人。

Rect(intleft,int top,int right,int bottom)

left

矩形左上角X坐标值

top

矩形左上角Y坐标值

right

矩形右下角X坐标值

bottom

矩形右下角Y坐标值

下面借用一张图说明忘了哪个博客找来的了,如Rect(150,75, 260, 120) 一目了然吧。

iOS的 context 和Android 中的 canvas

ios 想要绘图,要用到CGContextRef类.最基本的用法是在- (void)drawRect:(CGRect)rect 函数中绘制. Android 中要用到Canvas类.最基本的用法是在  ...

Android中使用Canvas和Paint绘制一个安卓机器人

场景 在Android中画笔使用Paint类,画布使用Canvas类来表示. 绘图的基本步骤 首先编写一个继承自View的自定义View类,然后重写其onDraw方法,最后把自定义的view添加到ac ...

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

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

android canvas 画图笔记

android canvas 画图笔记 1.PathEffect类 画虚线 Paint p = new Paint(Paint.ANTI_ALIAS_FLAG); p.setStyle(Paint.S ...

Canvas画图在360浏览器中跑偏的问题

问题描述,canvas画图的js代码中编写的是画正方形的代码,结果在360浏览器上变成了长方形,不知道怎么回事,请问各位大神是否遇到过此类问题?

android中画文字的换行 办法(对于遇到canvas.drawText(String s )无法实现换行问题的解决)

在使用canvas.drawText()绘制文字的时候,发现,如果需要绘制的文字较长,需要换行,通过在文字中加上“\n"或者”\r\n"都无法实现换行,如果非要使用canvas.d ...

Android中使用SurfaceView和Canvas来绘制动画

事实上每一个View中都有Canvas能够用来绘制动画.仅仅须要在这个View中重载onDraw()方法就能够,可是SurfaceView类是一个专门用来制动动画的类. Canvas(中文叫做&quo ...

Android中Canvas绘图基础详解(附源码下载) (转)

Android中Canvas绘图基础详解(附源码下载) 原文链接  http://blog.csdn.net/iispring/article/details/49770651   AndroidCa ...

Android 中常见控件的介绍和使用

1 TextView文本框 1.1 TextView类的结构 TextView 是用于显示字符串的组件,对于用户来说就是屏幕中一块用于显示文本的区域.TextView类的层次关系如下: java.la ...

随机推荐

EF:自定义Oracle的映射类型

oracle在DB First模式下,int类型的字段会自动映射为decmial类型的属性. 我们可以通过自定义类型映射进行“纠整”. 在app.config 自定义映射规则:

centos 软件包安装与管理

http://rpmfind.net/linux/RPM/index.html http://pkgs.org/ https://sourceforge.net/

web_submit_data函数上传图片

web_submit_data函数上传图片 通常loadrunner上传下载文件脚本不能通过录制来实现,录制上传脚本回放过程会出问题,主要原因在于上传文件的路径,了解了上传文件的原理之后,可以手工完成 ...

linux主机间复制文件

命令基本格式: 1.从 本地 复制到 远程    * 复制文件:          * 命令格式:                  scp local_file remote_username@re ...

keepalived + nginx双主 实战

安装nginx nginx 下载地址 http://nginx.org/download/nginx-1.8.0.tar.gz 安装nginx的依赖关系 yum install pcre pcre-d ...

TOGAF架构内容框架之内容元模型(下)

TOGAF架构内容框架之内容元模型(下) 2.2 治理扩展(Governance Extensions) 治理扩展元模型内容 治理扩展部分的意图在于引入额外的,并且与支持运营治理的目标和业务服务相关的 ...

JAVA HashMap 解析

1.简介(其实是HashMap注释的大致翻译) 本文基于JDK1.8,与JDK1.7中的HashMap有一些区别,看官注意区别. HashMap实现了Map接口,提供了高效的Key-Value访问.H ...

linux 查看cpu个数,内存情况,系统版本

查看cpu个数 总核数 = 物理CPU个数 * 每颗物理CPU的核数 总逻辑CPU数 = 物理CPU个数 * 每颗物理CPU的核数 * 超线程数 查看物理CPU个数 cat /proc/cpuinfo ...

CentOS6.9-zabbix3.2启动失败原因及页面没有mysql选择项

环境内核信息: [root@zabbix- ~]# uname -a Linux lodboyedu- -.el6.x86_64 # SMP Tue Mar :: UTC x86_64 x86_64 ...

Touch Handling in Cocos2D 3.x(六)

使英雄变成可触碰的对象 这是另一个非常有用的特性.很多用户需要捡起已经存在的英雄然后满屏幕移动它们.让我们按以下步骤实现该功能: 如果用户触摸屏幕空白位置,一个新的英雄将被创建 如果用户触摸一个已经存 ...

canvas 画图 android,Android 中的Canvas画图相关推荐

  1. Android studio中实现CANVAS(用JAVA绘制各种图形以及渐变动画)

    方法一:直接在JAVA类中写图形定义(4个参数均为坐标,指的是以上边界和左边界为原点的坐标,即边界距离) public class DrawView extends View {public Draw ...

  2. HTML5 中的canvas元素用于,HTML5中的Canvas元素

    canvas 元素用于在网页上绘制图形. 什么是Canvas? HTML 5 的canvas元素使用JavaScript 在网页上绘制图像. 画布是一个矩形区域,您可以控制其每一像素. canvas ...

  3. html的canvas标签用法,html5中关于canvas标签用法(绘图)

    标签只是图形容器,您必须使用脚本来绘制图形. 用canvas配合javascript可以直接在html页面动态绘图,无需调用jquery. 代码如下: var my_canvas=document.g ...

  4. android中怎么画图工具,Android画图工具的制作

    Android 项目中使用到画图工具,本文记载如何实现,需详细了解cavas和surfaceviw 1 三星pad 三星pad自带的手写笔可以很好的支持画图,集成三星的sdk 以上三星官方提供的库文件 ...

  5. android设计一个多线程和画图的程序小球,Android开发之多线程中实现利用自定义控件绘制小球并完成小球自动下落功能实例...

    本文实例讲述了Android开发之多线程中实现利用自定义控件绘制小球并完成小球自动下落功能的方法.分享给大家供大家参考,具体如下: 1.布局界面 xmlns:tools="http://sc ...

  6. Android 中的 Canvas API

    使用 Android Widget 组中不存在的自定义 UI 元素并想知道它是如何制作的? 这是 Android 中存在的 Canvas API 的魔力.我认为画布这个名字本身就定义了它是艺术家的游乐 ...

  7. html中使用canvas画图

    需求 把一张雪碧图渲染到页面上,让当前展示的图片看起来像动图一样.使用canvas能简单且快速的做到. 实现步骤 html代码如下: <canvas id="logo" wi ...

  8. s时钟画布 android,Android UI编程进阶——使用SurfaceViewt和Canvas实现动态时钟

    概述: 很多时候我们想要自己写一些类似时钟.罗盘的控件,却又找不到合适的Demo.我想这时你可能索性就直接上图片了.在Android有Canvas和Paint这么好的画师的情况下,还是选择使用图片,的 ...

  9. Android 如何清空 Canvas 清屏只需三句话

    android开发--Canvas清屏只需三句话 分类: Android开发 2012-11-28 21:51 4269人阅读 评论(19) 收藏 举报 这两三天一直在研究这个问题,今天终于成功了.我 ...

  10. 【Android 应用开发】Canvas 精准绘制文字 ( 文本边界坐标解析 | 绘图位置 )

    文章目录 一.文本边界坐标解析 二.绘图位置 一.文本边界坐标解析 在上一篇博客 [Android 应用开发]Canvas 精准绘制文字 ( 测量文本真实边界 | 将文本中心点与给定中心点对齐 ) 中 ...

最新文章

  1. stl set求交集 并集 差集
  2. HikariConfig配置详解
  3. 纽约时报:安全问题将毁掉整个互联网
  4. CentOS 更改MySQL数据库目录位置
  5. java getparameter 乱码_request.getParameter(“参数名”) 中文乱码解决方法
  6. tensorflow GPU环境配置 Nvidia+cuda+cudnn
  7. C# 数据库并发的解决方案(通用版、EF版)
  8. ThreadPoolExecutor执行任务,异常日志缺失问题
  9. Xcode 工程文件打开不出来, cannot be opened because the project file cannot be parsed.
  10. kux格式怎么转换成mp3_怎么快速无损地把视频转换成mp3格式?三种方法了解一下吗?...
  11. 无线扫码枪 服务器查询异常,扫描枪常见问题
  12. 毕业设计 基于STM32停车管理系统 - 物联网
  13. c++ 调用meshlab程序慢_MeshLab中插件的添加过程
  14. 【matlab笔记】寻找极小值
  15. 华为云centos8 配置国内yum源及遇到问题
  16. 电脑重装系统后c盘数据能恢复吗c盘重装后可以数据恢复吗
  17. C# Thread详解
  18. 揭秘沃尔玛、腾讯、京东、浙商银行的供应链管理方案
  19. 英文打字自动空格如何解决?
  20. win10重装系统打开分区或者磁盘提示无法访问解决办法

热门文章

  1. osm数据下载 python_Python环境下使用OpenStreetMap下载的.osm数据
  2. 查看Win10序列号
  3. python中的数学函数汇总
  4. 工业大数据白皮书(2019版)
  5. 【mirror】国内镜像站,没事翻一翻
  6. MacOS中的剪切快捷键
  7. Babylon.js 第28章 多面体
  8. 计算机组成原理运算器实验报告及数据分析,《计算机组成原理》运算器实验报告...
  9. Mip-NeRF 360
  10. 一款好用的手机云便签APP和电脑云便签软件