Android如何调用拍照程序实现连拍

可以实现调用摄像头拍照,后台自动保存照片。

例子非常详细,经过测试后的。


关于评论中很多童鞋说不能连拍,在这里澄清一下:连拍功能在这里确实没有体现,我只是贴出了部分代码,实现了不阻塞主线程,且拍照完成后继续停留在拍摄界面,如果大家想要实现连拍,可以在onClick()方法中循环调用takePicture()方法,想要连拍几张自己定义,代码是用来学习的,希望大家可以体谅。

public class SnapPicActivity extends Activity 
  implements SurfaceHolder.Callback{
	final private static String STILL_IMAGE_FILE = "capture.jpg";
	final private static int IMAGE_NUM= 3;
	private String strCaptureFilePath = "/sdcard/camera_snap.jpg"; 
	private String TAG = "IsiCamera2Activity";
	private Button btn_capture; 
	private Button btn_sum; 
	private Camera camera = null; 
	private SurfaceHolder mSurfaceHolder; 
	private SurfaceView mSurfaceView01; 
	private FrameLayout mFrameLayout01;
	private boolean bPreviewing =false; 
	private int intScreenWidth; 
	private int intScreenHeight; 
	@Override 
	public void onCreate(Bundle savedInstanceState) { 
		super.onCreate(savedInstanceState); 
		/* 使应用程序全屏幕运行,不使用title bar */ 
		requestWindowFeature(Window.FEATURE_NO_TITLE); 
		setContentView(R.layout.main); 
		
		/* 取得屏幕解析像素 */ 
		getDisplayMetrics(); 
		findViews();
		getSurfaceHolder(); 
		btn_capture.setOnClickListener(new Button.OnClickListener() { 
			@Override 
			public void onClick(View v) { 
				jumpOutAToast("test onclick");
                //这里实现模拟连拍逻辑
                for(int i=0; i<IMAGE_NUM; i++){
                	takeAPicture();
                 }
                
            }
        });
    }
	
    @Override
    protected void onPause() {     
	    //被交换到后台时执行    
	    //camera.release();
	    //camera = null;
	    bPreviewing = false;
	    jumpOutAToast("test onPause");
	    super.onPause();
    }
    
    @Override 
    public void onStop() {
	    jumpOutAToast("test onStop");
	    resetCamera();
	    super.onStop();
    }
    @Override
    
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值