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卡。”