`
t225com
  • 浏览: 660455 次
文章分类
社区版块
存档分类
最新评论

Android提高第二篇之SurfaceView的基本使用

 
阅读更多

本文来自http://blog.csdn.net/hellogv/ ,引用必须注明出处!

上次介绍MediaPlayer的时候稍微介绍了SurfaceView,SurfaceView由于可以直接从内存或者DMA等硬件接口取得图像数据,因此是个非常重要的绘图容器,这次我就用两篇文章来介绍SurfaceView的用法。网上介绍SurfaceView的用法有很多,写法也层出不同,例如继承SurfaceView类,或者继承SurfaceHolder.Callback类等,这个可以根据功能实际需要自己选择,我这里就直接在普通的用户界面调用SurfaceHolder的lockCanvas和unlockCanvasAndPost。

先来看看程序运行的截图:

截图1主要演示了直接把正弦波绘画在SurfaceView上

对比上面的左右两图,右图用.lockCanvas(null),而左图用.lockCanvas(new Rect(oldX, 0, oldX + length,
getWindowManager().getDefaultDisplay().getHeight())),对比一下两个效果,由于左图是按指定Rect绘画,所以效率会比右图的全控件绘画高些,并且在清屏之后(canvas.drawColor(Color.BLACK))不会留有上次绘画的残留。

接下来贴出main.xml的源码:

接下来贴出程序源码:

注意一下 for (int i = oldX + 1; i < length; i++) {// 绘画正弦波 这句,在.lockCanvas()指定Rect内减少循环画线的次数,可以提高绘图效率。

分享到:
评论

相关推荐

    Android提高第二篇之SurfaceView的基本使用.docx

    Android提高第二篇之SurfaceView的基本使用.docx

    Android提高第二篇之SurfaceView(上).doc

    Android提高第二篇之SurfaceView(上)

    android 使用SurfaceView实现小球高处落下并弹起的效果

    android 使用SurfaceView实现小球高处落下并弹起的效果 此程序是在《android游戏开发大全》第7章第2节案例的基础上做的改进

    android 摇摇棒 之surfaceView vs. View--第二届 Google 暑期大学生博客分享大赛 - 2011 Android 成长篇

    NULL 博文链接:https://erbaor.iteye.com/blog/1142388

    Android代码-经典跑酷

    从12年初(大二上学期)开始自学Java,12年9月份(大二下学期)开始自学Android,然后历时近三个月,在一边学一边写中完成了这个用SurfaceView写的跑酷游戏。 同时拿这个作品参加了2013年的谷歌安卓第四届大学生挑战...

    android开发资料大全

    从零开始Android游戏编程(第二版) 新版Android开发教程&笔记(1-12) eoeAndroid社区精华特刊共24期全部原创 《深入浅出Android--Google手持设备应用程序设计》下载 《Android编程指南》android-book.pdf 下载 ...

    android开发揭秘PDF

    第2章 Android开发环境搭建 2.1 Android开发准备工作 2.2 开发包及其工具的安装和 配置 2.2.1 安装JDK和配置Java开发 环境 2.2.2 Eclipse的安装与汉化 2.2.3 SDK和ADT的安装和 配置 2.3 创建第一个Android项目——...

    疯狂Android讲义(第2版)源代码 第6章~第9章

    《疯狂Android讲义(第2版)》.(李刚).源代码 疯狂Android讲义目录结构: 第2章、Android应用程序界面设计,即View 2.2、布局管理(Layout):LinearLayout、TableLayout、FrameLayout、RelativeLayout; 2.3、基本...

    《Android应用开发揭秘》附带光盘代码.

     第2章 Android开发环境搭建  2.1 Android开发准备工作  2.2 开发包及其工具的安装和  配置  2.2.1 安装JDK和配置Java开发  环境  2.2.2 Eclipse的安装与汉化  2.2.3 SDK和ADT的安装和  配置  2.3 创建第...

    《Android高级编程》

    1.9.3 Dalvik虚拟机 1.9.4 Android应用程序架构 1.9.5 Android库 1.9.6 高级Android库 1.10 小结 第2章 开始入手 2.1 Android开发 2.1.1 开始前的准备工作 2.1.2 创建第一个Android活动 2.1.3 Android应用程序的类型...

    疯狂Android讲义源码

     第2章 Android应用的界面编程 35  2.1 界面编程与视图(View)组件 36  2.1.1 视图组件与容器组件 36  2.1.2 使用XML布局文件控制UI  界面 40  2.1.3 在代码中控制UI界面 41  2.1.4 使用XML布局文件和Java ...

    《Android应用开发揭秘》源码

     第2章 Android开发环境搭建  2.1 Android开发准备工作  2.2 开发包及其工具的安装和配置  2.2.1 安装JDK和配置Java开发环境  2.2.2 Eclipse的安装与汉化  2.2.3 SDK和ADT的安装和配置  2.3 创建第一个...

    Android应用开发揭秘pdf高清版

    第2章 Android开发环境搭建 2.1 Android开发准备工作 2.2 开发包及其工具的安装和 配置 2.2.1 安装JDK和配置Java开发 环境 2.2.2 Eclipse的安装与汉化 2.2.3 SDK和ADT的安装和 配置 2.3 创建第一个Android项目——...

    Android高级编程--源代码

    第2章 开始入手 17 2.1 Android开发 18 2.1.1 开始前的准备工作 18 2.1.2 创建第一个Android活动 22 2.1.3 Android应用程序的类型 27 2.2 面向移动设备的开发 28 2.2.1 关于硬件设计的考虑事项 28 2.2.2 考虑...

    Android直播实现(一)Android端推流、播放

    使用Android自带的编码工具,可实现硬编码,这里有一个国内大神开源的封装很完善的的库yasea,第一种方法需要实现的Camera采集部分也一起封装好了,进行一些简单配置就可以实现编码推流,并且yasea目前已经直接支持...

Global site tag (gtag.js) - Google Analytics