文档章节

android绘制图形总结

abcijkxyz
 abcijkxyz
发布于 2016/07/30 17:24
字数 535
阅读 3
收藏 0

需要继承View,并重写onDraw(),当需要更新视图时,调用invalidate()(非UI线程调用postInvalidate())。其中涉及到的类有:Canvas,Paint,Path等。

Canvas是依附于View的画布,定义了各种绘制图形的方法,常用的有:drawBitmap()画位图,drawPath()沿着指定path画任意图形,drawCircle()画圆,drawRect()画矩形,drawRoundRect()画圆角矩形,drawOval()画椭圆,drawText()画文本,drawText()画文本,drawColor()画背景颜色,drawTextOnPath()沿着路径画文本,drawLine()画直线,drawPoint()画点,等等。
Canvas还提供了如下方法对图形进行变换:translate(),rotate(),scale()。
Canvas的drawBitmapMesh()方法用来扭曲图像,这个方法非常强大,如果用的好,可以开发出如”水波荡漾“”红旗飘飘“等效果。
Paint是画笔类,主要用来设置绘制风格,常用的api有:setARGB(),setAlpha(),setTextAlign()设置是否抗锯齿,setColor(),setStyle(),setStrokeWidth(),setTextSize(),setPathEffect()设置绘制路径时的路径效果,setTextAlign()设置文字对齐方式,setShader()设置笔画的填充效果,setShadowLayer()设置阴影,等等。
Path类代表任意多条直线连接成的任意图形,常用api有:moveTo()定义图形的第一个顶点,lineTo()定义图形的多个顶点,close()回到起始点形成封闭线,addRect(),setPathEffect()设置绘制效果。PathEffect类来定义绘制效果,该类有如下子类:
CornerPathEffect:将Path的各个连接线段之间的夹角用一种更平滑的方式连接。
DashPathEffect:将Path的线段虚线化。
DiscretePathEffect:打散Path的线段,使得在原来路径的基础上发生打散效果。
PathDashPathEffect:使用Path图形来填充当前的路径。
ComposePathEffect:组合效果。
SumPathEffect:叠加效果。
Matrix是矩阵工具类,用来控制图形,组件的变换。提供了如下方法:reset(),setSkew(),setScale(),setRotate(),setTranslate()。Canvas类画图形的方法里面就会使用到该类,如:drawBitmap(Bitmap bitmap, Matrix matrix, Paint p)。

Shader类可用来指定图形的渲染效果(通过paint.setShader()),它提供了如下子类:
BitmapShader:位图平铺
LinearGradient:线性渐变
RadialGradient:圆形渐变
SweepGradient:角度渐变
ComposeShader:组合渲染效果

本文转载自:http://blog.csdn.net/wdong_love_cl/article/details/51383688

共有 人打赏支持
abcijkxyz
粉丝 63
博文 6196
码字总数 1876
作品 0
深圳
项目经理
私信 提问
图片和图形之用OpenGL ES显示图形(9)

原文 概要 Android框架提供了大量用于创建有吸引力的功能性图形用户界面的标准工具。但是,如果您想要更多地控制应用程序在屏幕上绘制的内容,或者冒险进入三维图形,则需要使用其他工具。A...

lichong951
05/26
0
0
Android: Android图形基础

《Android 基础教程(第3版)》Ed Burnette Android在其android.graphics包中提供了完整的本机二维图形库: Color Android中的颜色用4个数字表示(Alpha, Red, Green, Blue) 1. int color = Colo...

长平狐
2012/06/20
402
0
Android 通过DrawableInflater加载自定义Drawable

一、Drawable 在Android系统张,图形图像的绘制需要在画布上进行操作和处理,但是绘制需要了解很多细节以及可能要进行一些复杂的处理,因此系统提供了一个被称之为Drawable的类来进行绘制处理...

IamOkay
12/15
0
0
图片和图形之矢量绘制(Vector drawables)(3)

原文 概述 A VectorDrawable是一个矢量图形,在XML文件中定义为一组点,线和曲线及其相关的颜色信息。使用矢量绘图的主要优点是图像可伸缩性。它可以在不损失显示质量的情况下进行缩放,这意...

lichong951
05/25
0
0
Android性能优化:那些不可忽略的绘制优化

前言 在 开发中,性能优化策略十分重要 本文主要讲解性能优化中的绘制优化,希望你们会喜欢。 目录 // 方式2:在 BaseActivity 的 onCreate() 方法中使用下面的代码移除 优化方案2:移除 控件...

Carson_Ho
05/21
0
0

没有更多内容

加载失败,请刷新页面

加载更多

js垃圾回收机制和引起内存泄漏的操作

JS的垃圾回收机制了解吗? Js具有自动垃圾回收机制。垃圾收集器会按照固定的时间间隔周期性的执行。 JS中最常见的垃圾回收方式是标记清除。 工作原理:是当变量进入环境时,将这个变量标记为“...

Jack088
昨天
2
0
大数据教程(10.1)倒排索引建立

前面博主介绍了sql中join功能的大数据实现,本节将继续为小伙伴们分享倒排索引的建立。 一、需求 在很多项目中,我们需要对我们的文档建立索引(如:论坛帖子);我们需要记录某个词在各个文...

em_aaron
昨天
3
0
"errcode": 41001, "errmsg": "access_token missing hint: [w.ILza05728877!]"

Postman获取微信小程序码的时候报错, errcode: 41001, errmsg: access_token missing hint 查看小程序开发api指南,原来access_token是直接当作parameter的(写在url之后),scene参数一定要...

两广总督bogang
昨天
7
0
MYSQL索引

索引的作用 索引类似书籍目录,查找数据,先查找目录,定位页码 性能影响 索引能大大减少查询数据时需要扫描的数据量,提高查询速度, 避免排序和使用临时表 将随机I/O变顺序I/O 降低写速度,占用磁...

关元
昨天
7
0
撬动世界的支点——《引爆点》读书笔记2900字优秀范文

撬动世界的支点——《引爆点》读书笔记2900字优秀范文: 作者:挽弓如月。因为加入火种协会的读书活动,最近我连续阅读了两本论述流行的大作,格拉德威尔的《引爆点》和乔纳伯杰的《疯传》。...

原创小博客
昨天
21
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部