android:
id="@+id/mSurfaceView"
android:
layout_width="fill_parent"
android:
layout_height="fill_parent"/>
android:
id="@+id/linearLayout0"
android:
layout_width="wrap_content"
android:
layout_height="fill_parent"
android:
layout_alignParentRight="true"
android:
gravity="center_vertical"
android:
orientation="vertical">
c)com.camera.app.CameraActivity
importjava.io.IOException;
importandroid.app.Activity;
//要注意该类的导入,一定是hardware
importandroid.hardware.Camera;
importandroid.os.Bundle;
importandroid.view.SurfaceHolder;
importandroid.view.SurfaceView;
importandroid.view.View;
importandroid.view.View.OnClickListener;
importandroid.view.Window;
importandroid.view.WindowManager;
importandroid.widget.Button;
publicclassCameraActivityextendsActivityimplementsSurfaceHolder.Callback,OnClickListener{
privateSurfaceViewmSurfaceView;
privateSurfaceHoldermSurfaceHolder;
privateCameracamera;
privateButtonmButton_paizhao;
privateButtonmButton_save;
privateButtonmButton_cencel;
@Override
publicvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.main);
init();
}
publicvoidinit(){
//实例化控件对象
mSurfaceView=(SurfaceView)findViewById(R.id.mSurfaceView);
mButton_paizhao=(Button)findViewById(R.id.mButton_paizhao);
mButton_save=(Button)findViewById(R.id.mButton_save);
mButton_cencel=(Button)findViewById(R.id.mButton_cancel);
mButton_paizhao.setOnClickListener(this);
mButton_save.setOnClickListener(this);
mButton_cencel.setOnClickListener(this);
//调用getHolder()获取一个SurfaceHolder对象
mSurfaceHolder=mSurfaceView.getHolder();
mSurfaceHolder.addCallback(this);
//设置的类型是并不拥有缓存区的表面景象
mSurfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
}
@Override
publicvoidsurfaceCreated(SurfaceHolderholder){
camera=Camera.open();
try{
camera.setPreviewDisplay(holder);
}catch(IOExceptione){
e.printStackTrace();
}
}
@Override
publicvoidsurfaceChanged(SurfaceHolderholder,intformat,intwidth,
intheight){
camera.stopPreview();
camera.startPreview();
}
@Override
publicvoidsurfaceDestroyed(SurfaceHolderholder){
camera.stopPreview();
camera.release();
}
Camera.ShutterCallbackshutter=newCamera.ShutterCallback(){
@Override
publicvoidonShutter(){
//TODOAuto-generatedmethodstub
}
};
Camera.AutoFocusCallbackautoFocus=newCamera.AutoFocusCallback(){
@Override
publicvoidonAutoFocus(booleansuccess,Cameracamera){
//TODOAuto-generatedmethodstub
}
};
Camera.PictureCallbackjpeg=newCamera.PictureCallback(){
@Override
publicvoidonPictureTaken(byte[]data,Cameracamera){
//TODOAuto-generatedmethodstub
}
};
@Override
publicvoidonClick(Viewv){
switch(v.getId()){
caseR.id.mButton_paizhao:
camera.autoFocus(autoFocus);
try{
Thread.sleep(2*1000);
}catch(Exceptione){
e.printStackTrace();
}
camera.takePicture(shutter,null,jpeg);
break;
caseR.id.mButton_save:
break;
caseR.id.mButton_cancel:
camera.startPreview();
break;
}
}
}