Surface与SurfaceHolder.Callback
16lz
2021-01-26
<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
更多相关文章
- Android(安卓)-- 网络管理分析
- Android(安卓)WebView 使用总结--持续更新
- Android6.0 SystemUI之网络信号栏显示刷新
- Android与JS交互之基本
- 使用MediaPlayer播放声音的异常
- Android(安卓)Studio AIDL实现
- Android友盟统计和埋点
- Android(安卓)Spinner不触发onItemSelected事件
- CountDownTimer倒计时器的使用