Canvas、Paint、的简单使用及辅助类(Path、Shader、简介)
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、简介)的更多相关文章
- 图形绘制 Canvas Paint Path 详解
图形绘制简介 Android中使用图形处理引擎,2D部分是android SDK内部自己提供,3D部分是用Open GL ES 1.0.大部分2D使用的api都在android.grap ...
- android 绘图之Canvas,Paint类
Canvas,Paint 1.在android 绘图但中经常要用到Canvas和Paint类,Canvas好比是一张画布,上面已经有你想绘制图画的轮廓了,而Paint就好比是画笔,就要给Canvas进 ...
- 改善用户体验,用图片的自身变化以及进度通知摆脱传统的进度条,okhttp,Canvas,Paint实现
转载请注明出处:王亟亟的大牛之路 从最開始的白页面等待,到后来的进度条告知用户.到如今的WebBO/微信这样的先下缩略图点击才又一次下大图的方式,我们开发人员对用户感知的注意度越来越高.昨天刷微博的时 ...
- Canvas 知识体系简单总结
Canvas 知识体系简单总结 标签(空格分隔): HTML5 Canvas 本文原创,如需转载,请注明出处 前言 知识点零零散散,一个上午整理了一下,内容不多,方便记忆. 本文不是教程,如需教程移步 ...
- html5 canvas 实现一个简单的叮当猫头部
原文:html5 canvas 实现一个简单的叮当猫头部 html5的canvas是很强大的,今天也是温习了一下之前的基础知识,然后学着做了一个简单的小案例.虽然在这一块几乎空白,但还是乐于尝试... ...
- JAVA nio 2 和 Path 类简介
想要初步了解 NIO.2 API,也就是通常所说的“JSR203: More New I/O APIs for the Java Platform”,最好的切入点就是新的抽象类 java.nio.fi ...
- 【Bugly干货分享】一起用 HTML5 Canvas 做一个简单又骚气的粒子引擎
Bugly 技术干货系列内容主要涉及移动开发方向,是由Bugly邀请腾讯内部各位技术大咖,通过日常工作经验的总结以及感悟撰写而成,内容均属原创,转载请标明出处. 前言 好吧,说是“粒子引擎”还是大言不 ...
- 一起用HTML5 canvas做一个简单又骚气的粒子引擎
前言 好吧,说是"粒子引擎"还是大言不惭而标题党了,离真正的粒子引擎还有点远.废话少说,先看demo 本文将教会你做一个简单的canvas粒子制造器(下称引擎). 世界观 这个简单 ...
- canvas滤镜之简单的取反
自己学习了一下canvas滤镜 编写一个简单的小界面,嘿嘿! 注释都在里面啦啦啦,感兴趣的来瞅瞅哦
随机推荐
- c++网络通信(与服务器通信聊天)和c#网络通信
c++网络通信(有待整理) 链接:http://pan.baidu.com/s/1i3nMLKT 密码:ksi8 c#网络通信(tcp/udp两部分) TCP发送端: using System; us ...
- Thinking in C++: 第1章 为什么C++会成功(改进了C的缺点,可复用C的知识与库,执行效率相当)
本文内容摘抄自C++经典书籍:<Thinking in C++> 操作概念:OOP程序像什么 我们已经知道,用C 语言编写的过程程序就是一些数据定义和函数调用.要理解这种程序的含义,程 ...
- JDBC批量操作
/** * 批量执行预定义模式的SQL */ public static void exeBatchParparedSQL() { ...
- 如何将Oracle安装为Linux服务
方法一:使用oracle自带的启动和关闭脚本 1. oracle用户修改/etc/oratab 文件: $ vi /etc/oratab orcl:/oracle/app/product/10.2.0 ...
- Android 绘图工具库AChartEngine
From: http://www.oschina.net/p/achartengine AChartEngine是为android应用而设计的绘图工具库.目前该库的最新稳定版本是0.7,支持绘制以下类 ...
- Kolmogorov复杂性
原文-wiki 看Kolmogorov复杂性看到云里雾里,于是干脆把wiki上的翻译了一下. [toc] Chaitin complexity, algorithmic entropy, progra ...
- Frameset标签
Frameset标签不能在body中设置. <!DOCTYPE html> <html> <head> <title>框架标签</title> ...
- UbuntuOpenStack core componennts
<1,keystone安装配置> 1,yum -y install openstack-keystone python-keystoneclient; 2,配置实用mysql存储keyto ...
- sharepoint 2010 使用自定义列表模版创建列表(1)
我们在使用sharepoint的过程中,发现一个比较好用的功能,就是“将此列表另存为模版”(save list as template),这个功能的作用是,创建一个和当前列表或者文档库一模一样的配置, ...
- c++冒泡排序的模板函数设计
说明 由于课程设计需要,特编写本程序.本程序首先定义了一个冒泡程序的模板函数,然后在main()函数中定义了两个不同类型的数组,调用模板函数对其进行排序.(注意,本程序是在linux下编写,但是直接拷 ...