- 1、本文档共4页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Android学习之View类和surfaceView类、动画等
View类是Android的一个超类,构建View的子类需复写onDraw(……)方法,可调用View类的postInvalidate()方法来执行更新,也可以Handler进行消息传递(稍微复杂一点)。
SurfaceView使用了双缓冲技术,它是提供给需要直接画像素而不是使用窗体部件的应用使用的。每个Surface创建一个Canvas对象
使用时需要对其进行创建、销毁、情况改变等动作进行监控,因此要实现SurfaceHolder.Callback接口。获取SurfaceHolder对象可用getHolder方法。同时还需要调用addCallback方法来添加“回调函数”。
surfaceChanged(……):Surface的大小发生改变时激发
surfaceCreated(……):创建Surface时激发
surfaceDestroyed(……):销毁时激发
lockCanvas(……):锁定画布,绘图之前必须锁定画布才能得到当前画布对象
unlockCanvasAndPost(……):解锁画布
removeCallb(……):从SurfaceView中移除回调函数
SurfaceVeiw不需要额外定义一个线程类来执行更新。
Paint类介绍:
主要方法:
setAntiAlias:设置画笔的锯齿效果
setColor:设置颜色
setARGB:设置画笔的a,r,g,g值
setAlpha:设置透明度,0——255
setTextSize:设置字体尺寸
setStyle:设置画笔风格,空心或实心
setStrokeWidth:设置空心的边框宽度
setFlags(Paint.ANTI_ALIAS_FLAG):消除锯齿
getColor,getAlpha等
获取字符串的宽度:measureText(String)
获取高度方法:
FontMetrics fm = paint.getFontMetrics();
int height = (int) (Math.ceil(fm.bottom - fm.top) + 2)
Canvas类介绍:
主要方法:
Canvas():创建一个空的画布,可以使用setBitmap()方法来设置绘制的具体画布
Canvas(Bitmap):以Bitmap对象创建一个画布,则将内容都绘制在该Bitmap对象上,因此该Bitmap不得为NULL。
Canvas(GL gl):在绘制3D效果时使用,与OpenGL相关
drawColor:设置Canvas的背景颜色
setBitmap:设置具体画布
clipRect:设置显示区域,即设置裁剪区
isOpaque:检测是否支持透明
rotate:旋转画布
setViewport:设置画布中显示窗口
skew:设置偏移量
裁剪区域后需对画布进行锁定,调用Canvas类的save方法,绘制完成后调用restore方法解除锁定。
绘制几何图形:
Canvas类的方法:
drawRect:绘制矩形
drawCircle:绘制圆形
drawOval:绘制椭圆(需首先定义一个矩形)
drawPath:绘制任意多边形(调用Path对象的moveTo,lineTo方法设置点,调用close方法闭合这些点)
drawLine:绘制直线
drawPoint:绘制点
也可通过ShapeDrawable类来绘制图形,步骤:
1,new ShapeDrawable(Shape),确定绘制的图形样式
2,getPaint,获取画笔对象,对其编辑
3,setBounds设置图形显示区域
4,调用draw方法,将图形显示到屏幕上
绘制图像:
Canvas类的方法:
drawBitmap(Bitmap bitmap, Rect src, Rect dst, Paint paint):
src表示图片区域,dst表示屏幕区域(注:此方法有许多重载方法)
图像旋转步骤:
获取Matrix矩阵,用new构造
matrix.reset(),重置
设置旋转角度:matrix.setRotate(……)(有其它重载方法,默认以右上角的点为旋转中心点)
获取旋转后的图像,调用Bitmap类的
public static Bitmap createBitmap(Bitmap source, int x, int y, int width,
int height, Matrix m, boolean filter)
绘制旋转后的图像
图像缩放:
matrix.postScale(float,float)(有其它重载方法)
其它步骤同旋转
图像像素操作:
每一个图像像素通过一个4字节整数来展现:最高位是Alpha通道,255表示完全不透明,接下来依
您可能关注的文档
- 新西兰的教育简况.doc
- 2011年政法干警招录改革民法学_新增内容(第二章物权).doc
- 《网络营销与电子商务实务》课程论文:服装行业网络营销策略分析.doc
- 园林景观小品设计(二)PPT.ppt
- 校园文化建设与大学生成才之间的关系调查问卷.doc
- 浅谈汽车运输火灾的预防与对策.doc
- 异动电机五.doc
- 杭州:突出区域特色.doc
- 有关Word&PPT题目.doc
- 政治-黄幸:政府的职能:管理与服务.doc
- 医院感染的经济与社会影响.pptx
- 2025-2030中国工业控制计算机行业市场深度调研及竞争格局与投资战略研究报告.docx
- 城市综合体规划与开发运营.pptx
- 2025-2030中国报警器行业市场深度调研及发展前景与投资前景研究报告.docx
- 2025-2030中国工程起重机市场发展分析及市场趋势与投资方向研究报告.docx
- 2025-2030中国拟态技术行业市场发展分析及竞争格局与投资价值研究报告.docx
- 2025-2030中国持续气道正压通气装置行业市场发展趋势与前景展望战略研究报告.docx
- 2025-2030中国拔火罐装置行业市场发展趋势与前景展望战略研究报告.docx
- 2025-2030中国微创脊柱外科行业市场发展趋势与前景展望战略研究报告.docx
- 2025-2030中国护理点血红蛋白分析仪行业市场发展趋势与前景展望战略研究报告.docx
文档评论(0)