1.Canvas类

作用:1.绘制各种图形、图片、字等。2.提供各种方法进行坐标变换(rotate、scale、skew、translate)

获取Canvas:一般是子类继承View并重写onDraw()方法

2.Paint类

作用:用于设置绘制风格,例如:画笔颜色、画笔笔触粗细、连接风格等。

获取Paint类:直接 new Paint();

3.Path类

作用:代表任意多条直线连接而成的任意图形。Canvas根据Path绘制时,可以绘制出任意形状。

子类:用来绘制各种各样的路径效果。(查询,不展开)参考资料:http://blog.csdn.net/x605940745/article/details/17141987

简单使用(参考资料):http://blog.sina.com.cn/s/blog_4d9c3fec0102vyhs.html

4.示例

/**
*创建View
*/
public class TestView extends View {
public TestView(Context context, AttributeSet attrs) {
super(context, attrs);
} @Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
/*利用Canvas画板画出长方形*/
Paint paint1 = new Paint();
paint1.setColor(Color.RED);
canvas.drawColor(Color.WHITE);
canvas.drawRect(80,80,120,120,paint1); /*利用Canvas类绘制椭圆形*/
RectF rectF = new RectF(80,150,130,200);
canvas.drawOval(rectF,paint1); /*利用Path类画出三角形*/
Paint paint2 = new Paint();
paint2.setAlpha(40);
paint2.setAntiAlias(true);
paint2.setStyle(Paint.Style.STROKE);
Path path = new Path();
path.moveTo(10,340);
path.lineTo(70, 340);
path.lineTo(40, 290);
path.close();
canvas.drawPath(path,paint2); }
}
<!--在res/layout/activity_main.xml中-->
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context="com.chen.android.test.MainActivity"> <com.chen.android.test.TestView
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</LinearLayout>

5.Shader类

作用:类似<graient>标签,用来进行渐变变换的

Shader.TileMode有3种参数:1.CLAMP的作用是如果渲染器超出原始边界范围,则会复制边缘颜色对超出范围的区域进行着色。

2.REPEAT的作用是在横向和纵向上以平铺的形式重复渲染位图。

3.MIRROR的作用是在横向和纵向上以镜像的方式重复渲染位图。

子类:LinearGradient(线性渲染)、ComposeShader(混合渲染)、RadialGradient(环形渲染)、SweepGradient(梯度渲染)

现在还不理解怎么使用(参考资料):http://www.cnblogs.com/menlsh/archive/2012/12/09/2810372.html

Canvas、Paint、的简单使用及辅助类(Path、Shader、简介)的更多相关文章

  1. 图形绘制 Canvas Paint Path 详解

    图形绘制简介        Android中使用图形处理引擎,2D部分是android SDK内部自己提供,3D部分是用Open GL ES 1.0.大部分2D使用的api都在android.grap ...

  2. android 绘图之Canvas,Paint类

    Canvas,Paint 1.在android 绘图但中经常要用到Canvas和Paint类,Canvas好比是一张画布,上面已经有你想绘制图画的轮廓了,而Paint就好比是画笔,就要给Canvas进 ...

  3. 改善用户体验,用图片的自身变化以及进度通知摆脱传统的进度条,okhttp,Canvas,Paint实现

    转载请注明出处:王亟亟的大牛之路 从最開始的白页面等待,到后来的进度条告知用户.到如今的WebBO/微信这样的先下缩略图点击才又一次下大图的方式,我们开发人员对用户感知的注意度越来越高.昨天刷微博的时 ...

  4. Canvas 知识体系简单总结

    Canvas 知识体系简单总结 标签(空格分隔): HTML5 Canvas 本文原创,如需转载,请注明出处 前言 知识点零零散散,一个上午整理了一下,内容不多,方便记忆. 本文不是教程,如需教程移步 ...

  5. html5 canvas 实现一个简单的叮当猫头部

    原文:html5 canvas 实现一个简单的叮当猫头部 html5的canvas是很强大的,今天也是温习了一下之前的基础知识,然后学着做了一个简单的小案例.虽然在这一块几乎空白,但还是乐于尝试... ...

  6. JAVA nio 2 和 Path 类简介

    想要初步了解 NIO.2 API,也就是通常所说的“JSR203: More New I/O APIs for the Java Platform”,最好的切入点就是新的抽象类 java.nio.fi ...

  7. 【Bugly干货分享】一起用 HTML5 Canvas 做一个简单又骚气的粒子引擎

    Bugly 技术干货系列内容主要涉及移动开发方向,是由Bugly邀请腾讯内部各位技术大咖,通过日常工作经验的总结以及感悟撰写而成,内容均属原创,转载请标明出处. 前言 好吧,说是“粒子引擎”还是大言不 ...

  8. 一起用HTML5 canvas做一个简单又骚气的粒子引擎

    前言 好吧,说是"粒子引擎"还是大言不惭而标题党了,离真正的粒子引擎还有点远.废话少说,先看demo 本文将教会你做一个简单的canvas粒子制造器(下称引擎). 世界观 这个简单 ...

  9. canvas滤镜之简单的取反

    自己学习了一下canvas滤镜 编写一个简单的小界面,嘿嘿! 注释都在里面啦啦啦,感兴趣的来瞅瞅哦

随机推荐

  1. div添加透明边框透明背景css

    -webkit-box-shadow: 1px 0px 15px #696969; background: rgba(255, 255, 255, 0.45) none repeat scroll 0 ...

  2. linux系统学习笔记:文件、目录、用户

    本篇主要从stat函数开始,逐个说明stat结构的每一个成员,以此来了解文件的所有属性.同时将说明修改这个属性的各个函数. 一.文件 使用stat函数族得到和文件有关的信息结构. #include & ...

  3. MySql优化方案

    mysql优化方案总结 u       Mysql数据库的优化技术 对mysql优化时一个综合性的技术,主要包括 a: 表的设计合理化(符合3NF) b: 添加适当索引(index) [四种: 普通索 ...

  4. JQuery中如何动态修改input的type属性

    代码如下: jQuery(".member_id").focus(function() { jQuery(this).val(''); }).blur(function() { i ...

  5. 在VMware中为CentOS配置静态ip并可访问网络-Windows下的VMware

    在VMware中为CentOS配置静态ip并可访问网络-Windows下的VMware 首先确保虚拟网卡(VMware Network Adapter VMnet8)是开启的,然后在windows的命 ...

  6. Python之路第十天,高级(2)-多线程,多进程,协程

    线程 threading threading模块对象 描述 Thread 表示一个线程的执行对象 Lock 锁原语对象 RLock 可重入锁对象,使单线程可再次获得已经获得了的锁(递归锁定) Cond ...

  7. leetcode 237 Delete Node in a Linked List python

    题目: Write a function to delete a node (except the tail) in a singly linked list, given only access t ...

  8. Entity Framewor中的 Migration

    http://www.entityframeworktutorial.net/code-first/code-based-migration-in-code-first.aspx = Code bas ...

  9. webpack ------require,ensure

    require-ensure和require-amd的区别: require-amd 说明: 同AMD规范的require函数,使用时传递一个模块数组和回调函数,模块都被下载下来且都被执行后才执行回调 ...

  10. U盘详解

    摘要:U盘,称呼最早来源于朗科公司生产的一种新型存储设备,名曰“优盘”,使用USB接口进行连接.USB接口就连到电脑的主机后,U盘的资料可与电脑交换.而之后生产的类似技术的设备由于朗科已进行专利注册, ...