Android学习之View类和surfaceView类、动画等.docVIP

Android学习之View类和surfaceView类、动画等.doc

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 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表示完全不透明,接下来依

文档评论(0)

xcs88858 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档