文档章节

android动画之SurfaceView

abcijkxyz
 abcijkxyz
发布于 2016/07/30 17:24
字数 304
阅读 6
收藏 0
由于view有以下两个缺陷:
1、缺乏双缓冲机制;
2、当需要更新view上面的图像时,必须重绘整个图像,效率低下;
因此SurfaceView登场了!SurfaceView一般与SurfaceHolder结合使用,SurfaceHolder用来在SurfaceView上画图,它使用下面的方法来获取Canvas对象:
lockCanvas(Rect rect); //获取指定区域,画图时只对指定区域进行更新,可以提高效率。
lockCanvas();
绘图完成后,使用下面的方法来释放绘图,提交所绘制的图形:
unlockCanvasAndPost(Canvas canvas);
需要说明的是该方法之后绘制的图形还处于缓冲中,下次再lockCanvas时,可能会"遮挡"它。
SurfaceHolder还可以添加回调函数,callbak中有三个方法:
public void surfaceCreated(SurfaceHolder holder); //SurfaceView被创建时调用
public void surfaceChanged(SurfaceHolder holder, int format, int width, int height); //SurfaceView格式或大小发生变换时调用
public void surfaceDestroyed(SurfaceHolder holder); //SurfaceView被销毁时调用

看一个例子,基于SurfaceView开发一个示波器,效果如下:


关键代码如下:
view1 = (SurfaceView)findViewById(R.id.surfaceview1);
holder = view1.getHolder();

Canvas canvas = holder.lockCanvas(new Rect(cx,cy-2,cx+2,cy+2));
canvas.drawPoint(cx,cy,paint);
...

holder.unlockCanvasAndPost(canvas);

完整源码下载地址:点击打开链接

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

共有 人打赏支持
abcijkxyz
粉丝 63
博文 6196
码字总数 1876
作品 0
深圳
项目经理
私信 提问
【Android游戏开发十四】深入Animation,在SurfaceView中照样使用Android—Tween Animation!

李华明Himi 原创,转载务必在明显处注明: 转载自【黑米GameDev街区】 原文链接: http://www.himigame.com/android-game/331.html 很多童鞋说我的代码运行后,点击home或者back后会程序异常,...

迷途d书童
2012/03/19
0
0
Android-SurfaceView与SurfaceHolder对象

1、Android-SurfaceView与SurfaceHolder对象: http://blog.csdn.net/andyhuabing/article/details/7657069 2、Android学习之 VideoView,SurfaceView: http://blog.csdn.net/abidepan/arti......

当空皓月
2014/12/18
0
0
Android提高第三篇之SurfaceView与多线程的混搭

本文来自http://blog.csdn.net/hellogv/ ,引用必须注明出处! 上一篇简单介绍了SurfaceView的基本使用,这次就介绍SurfaceView与多线程的混搭。SurfaceView与多线程混搭,是为了防止动画闪烁...

晨曦之光
2012/03/14
2.2K
1
Android SurfaceView简例

Android SurfaceView简例 Android中各的SurfaceView和View有很大的不同,两者应用场景不同。大多数View能做的事情SurfaceView也可以,但是SurfaceView效率更高。Android的View绘制过程由And...

开开心心过
2017/09/13
0
0
Android SurfaceView游戏开发示例

当我们需要开发一个复杂游戏的时候,而且对程序的执行效率要求很高时,View类就不能满足需求了,这时必须用SurfaceView类进行开发。 例如,对速度要求很高的游戏时,View类就不能满足需求了,...

长平狐
2013/01/06
126
0

没有更多内容

加载失败,请刷新页面

加载更多

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

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

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

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

em_aaron
昨天
27
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
昨天
31
0
MYSQL索引

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

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

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

原创小博客
昨天
36
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部