<1>首先得简单说明一下Surface与SurfaceHolder.Callback之间的联系。Surface是android的一个重要元素,用于android画面的图形绘制。而SurfaceView 是视图(View)的一个继承类,每一个SurfaceView都内嵌封装一个Surface。通过调用SurfaceHolder可以调用 SurfaceView,控制图形的尺寸和大小。而SurfaceHolder 是通过getholder()来取得。创立SurfaceHolder 对象后,用SurfaceHolder.Callback()来回调SurfaceHolder,对SurfaceView进行控制。单纯得用文字表述有点绕,因此下面将给出几段代码以供理解。SurfaceHolder holder = ((SurfaceView) findViewById(R.id.cameraPreview)).getHolder();holder.addCallback(this);holder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);这样就可以通过callback()对SurfaceView进行修改。<2>callback()方法介绍callback()包括三个函数:①surfaceCreated(SurfaceHolder  holder)当Surface第一次创建后会立即调用该函数。程序可以在该函数中做些和绘制界面相关的初始化工作,一般情况下都是在另外的线程来绘制界面,所以不要在这个函数中绘制Surface。其中,参数holder:surface所创建的SurfaceHolder②surfaceChanged(SurfaceHolder holder, int format, int width, int height)当Surface的状态(大小和格式)发生变化的时候会调用该函数,在surfaceCreated调用后该函数至少会被调用一次。其中,参数holder:更新surface的SurfaceHolderformat:新的图形格式width:新的宽度Height: 新的高度③surfaceDestroyed(SurfaceHolder holder,)当Surface被摧毁前会调用该函数,该函数被调用后就不能继续使用Surface了,一般在该函数中来清理使用的资源。参数holder:所要被删除的surface的SurfaceHolder 


更多相关文章

  1. Android(安卓)-- 网络管理分析
  2. Android(安卓)WebView 使用总结--持续更新
  3. Android6.0 SystemUI之网络信号栏显示刷新
  4. Android与JS交互之基本
  5. 使用MediaPlayer播放声音的异常
  6. Android(安卓)Studio AIDL实现
  7. Android友盟统计和埋点
  8. Android(安卓)Spinner不触发onItemSelected事件
  9. CountDownTimer倒计时器的使用

随机推荐

  1. 为开发者准备的最佳 Android(安卓)函数库
  2. Android(安卓)数据库的使用SQLite 和GREE
  3. Gradle解决依赖冲突
  4. 聊聊自定义View那些事
  5. Android(安卓)内存优化与泄露
  6. Android进阶(十六)子线程调用Toast报Can'
  7. Android(安卓)Studio查看aar文件内容
  8. android:Activity数据传递之对象(Serializ
  9. 关于Android的屏幕适配,看这篇就够了
  10. Android(安卓)Studio安装时 :Gradle proj