2024年3月24日发(作者:)
一.camera启动
1.一个activity启动调用流程:
onCreate()-->onStart()-->onResume()
onCreate():
1.可添加所需布局文件,画界面。
2.开启线程,启动硬件摄像头,调用ce().open()得到一个
reCamera实例mCameraDevice
ensureCameraDevice()-->ce().open()-->am
eters();确保摄像头存在,并将摄像头打开。
startPreview();开始取景预览
3.创建VideoPreview的SurfaceHolder,同时注册callback函数,当VideoPreview
的长宽变化时,调用SurfaceChanged()函数
mSurfaceView=(SurfaceView)findViewById(_preview);
SurfaceHolderholder=der();
lback(this);
e(E_TYPE_PUSH_BUFFERS);
geCaptureIntent是否为从短信息或联系人编辑界面发送的intent到camera
mIsImageCaptureIntent=isImageCaptureIntent();当该函数返回true时,表示从
短信息或联系人界面跳转到拍照界面;
为false时,表示从桌面程序正常启动camera;要注意两种不同情况所需的右侧
界面功能按钮区有变动。
onStart():
tch(SWITCH_CAMERA)设置拍照录像切换按钮切换到照相模式。
onResume()
startPreview()重新开始预览
1.当按home键退出程序时,会掉用stopPreview(),故再次进入时,会执行onResume()
函数,在此函数中,应重新开启预览功能。
reenOnAwhile()点亮屏幕,防止屏幕变黑。
2.拍照录像切换功能
er继承自ImageView,在布局文件中直接布局即可
h为true时,滑块在下方,显示拍照界面;当mSwitch为false时,滑块在上
方,显示录像界面。
3.当点击或触碰拍照录像切换按钮时:
_UP-->tryToSetSwitch()-->chChanged(this,onOff)
在中实现该接口,调用
switchToVideoMode()-->deoMode(this)-->startCameraActivity(),并结束
当前程序。
ThumbnailButton()更新功能按钮去的到相簿按钮
1.调用事件:
initializeFirstTime初始化时调用
initializeSecondTime()时调用
_MEDIA_SCANNER_FINISHED,扫描SD卡结束时调用
alid(),当图库里有图片时,值为TRUE;当图库里无图片
时,值为FALSE。
LastImage()更新到相簿按钮上的显示图片。
DisplayIfNeeded()-->if(mUri==null)
geDrawable(null);当图库无照片时,此处不显示任何照片。
rButton拍照按钮
1.对焦调用流程
按下屏幕上的ShutterButton按钮。
中的监听线程调用callShutterButtonFocus(),这个函数会调用接口
terButtonListener的函数onShutterButtonFocus()。
实现了接口terButtonListener。故
中的函数onShutterButtonFocus()被调用。
接着的执行流程为----->doFocus()------>autoFocus()--->cus()
2.拍照调用流程
之后调用performClick(),这个函数中调用了中的
onShutterButtonClick()
接着的执行流程为
----->dosnap()----->()----->te()---->ImageCapture.
capture()此函数执行完后,takepicture过程完成
takePicture完成后,surfaceChanged()将被调用将刚照下的照片显示在屏幕上。
中的回调接口JpegPictureCallback中的函数onPictureTaken()接着执行。
这个函数先调用mage()将jpeg图像数据存储在内存。
e的thumbnail显示过程:
mage()--->tPictureThumb()--->
a(uri,lastPictureThumb);
5.布局文件
_camera_,当从短信息或联系人界面,进入camera时,右侧功能
按钮区的“确定”“重拍”及“取消”
_,camera和videocamera主界面右侧的功能按钮区的布局
,camera主界面左侧预览取景区的布局
_,videocamera主界面左侧预览取景区的布局
_screen_,SD卡相关信息的输出,如在屏幕下方提示“使用相机前请先插
入SD卡。”


发布评论