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

原创 2010年11月03日 16:05:00

本文来自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的实现原理分析

在Android系统中,有一种特殊的视图,称为SurfaceView,它拥有独立的绘图表面,即它不与其宿主窗口共享同一个绘图表面。由于拥有独立的绘图表面,因此SurfaceView的UI就可以在一个独...
  • Luoshengyang
  • Luoshengyang
  • 2013年03月16日 16:57
  • 198996

SurfaceView 基础用法

Android 游戏开发框架核心组件SurfaceView
  • zhaoyw2008
  • zhaoyw2008
  • 2015年05月18日 17:33
  • 22536

解决SurfaceView各种疑难杂症

RecyclerView加载多个surfaceview覆盖,黑屏。SurfaceView黑色背景??透明背景??多层嵌套被遮挡? 苦苦找了好多天,一点办法没有,各个论坛问便了,都是互相抄,痛苦的我,尝...
  • gfg156196
  • gfg156196
  • 2017年06月07日 14:43
  • 2390

android的surfaceview的用法

参考了文章:Android中SurfaceView的使用详解,  但在该文基础上进行了一定的修改。       说到sufaceview就得讲讲这个类是干什么的。是的,它是用来控制自定义绘图的。起...
  • heikefangxian23
  • heikefangxian23
  • 2015年11月30日 11:36
  • 19213

Android中SurfaceView使用详解

1.什么是SurfaceView?     Surface意为表层、表面,顾名思义SurfaceView就是指一个在表层的View对象。为什么说是在表层呢,这是因为它有点特殊跟其他View不一样,其...
  • android_cmos
  • android_cmos
  • 2017年04月03日 12:54
  • 755

Android中Surface和SurfaceView的一些理解和总结

什么是Surface? 简单地说Surface对应了一块屏幕缓冲区,每个window对应一个Surface,任何View都是画在Surface上的,传统的view共享一块屏幕缓冲区,所有的绘制必须在...
  • zjmdp
  • zjmdp
  • 2012年07月02日 12:31
  • 9238

SurfaceView的工作原理

大家在做android游戏和视频播放器的apk开发时,会经常用到SurfaceView这个类,以及它的子类VideoView,GLSurfaceView等.它与普通的View视图有本质的区别,本文就对...
  • zhanxiaoqi
  • zhanxiaoqi
  • 2017年03月22日 17:30
  • 707

SurfaceView的使用详解

SurfaceView在安卓开发中使用还是比较广泛的。多数是用于游戏开发,图片和视频的播放等。 SurfaceView简介 SurfaceView和View的比较 简单的使用示例 关于Surfa...
  • ls1792304830
  • ls1792304830
  • 2016年11月17日 17:55
  • 1327

Android中的Surface和SurfaceView之我见

一、什么是Surface            简单的说Surface对应了一块屏幕缓冲区,每个window对应一个Surface,任何View都要画在Surface的Canvas上(后面有原因解释...
  • tgww88
  • tgww88
  • 2012年09月13日 11:33
  • 4291

Android实时取景:用SurfaceView实现 -- Camera 二

实现与上文一样的结果 直接贴源码 package com.example.administrator.camerasurfaceview; import android.app.Activi...
  • JKjiang123
  • JKjiang123
  • 2017年12月11日 15:02
  • 327
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android提高第二篇之SurfaceView的基本使用
举报原因:
原因补充:

(最多只允许输入30个字)