【发布时间】:2014-09-02 12:22:51
【问题描述】:
大家好,
我正在开发一个应用程序,我需要在满足某些条件时捕获图像。到目前为止,我有一个 SurfaceView 预览后置摄像头,我的所有条件都完成了。我想让相机在满足某些条件时拍照。用户使用该应用程序时将拍摄不止一张照片。所以预览会一直持续到满足所有条件。关于如何做到这一点的任何建议?谢谢!
解决方案: 我找到了其中的一些代码并进行了处理。
Camera.ShutterCallback myShutterCallback = new Camera.ShutterCallback() {
public void onShutter() {
// TODO bl
}
};
PictureCallback myPictureCallback_RAW = new PictureCallback() {
public void onPictureTaken(byte[] arg0, Camera arg1) {
// TODO Auto-generated method stub
}
};
PictureCallback myPictureCallback_JPG = new PictureCallback(){
@Override
public void onPictureTaken(byte[] data, Camera camera) {
File imagesFolder = new File(Environment.getExternalStorageDirectory(), "/ImagesFromCamera");
imagesFolder.mkdirs();
//Unix time stamp for unique file naming.
long unixTime = System.currentTimeMillis() / 1000L;
String fileName = "image"+ unixTime +".jpg";
File output = new File(imagesFolder, fileName);
try {
FileOutputStream fos = new FileOutputStream(output);
fos.write(data);
fos.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
// Notify the user when the image is taken.
Toast.makeText(CustomCameraActivity.this,
"Image saved.",
Toast.LENGTH_SHORT).show();
//Continue the Preview as it will stop once an image is taken.
camera.startPreview();
}
};
//Will call the camera to take a photo.
camera.takePicture(myShutterCallback, myPictureCallback_RAW, myPictureCallback_JPG);
【问题讨论】:
-
查看一些代码并至少了解您的情况会有所帮助。