Android的闪光灯

(1)关键代码

A,在AndroidManifest中注册相应的权限:

     <uses-permission android:name="android.permission.FLASHLIGHT" /> 

     <uses-permission android:name="android.permission.CAMERA"/>

     <uses-feature android:name="android.hardware.camera" />

     <uses-feature android:name="android.hardware.autofocus"/>

B,打开闪光灯关键代码:

     Camera  camera = Camera.open(); 

     camera.startPreview();

     parameter = camera.getParameters(); 

     parameter.setFlashMode(Parameters.FLASH_MODE_TORCH);

     camera.setParameters(parameter);

C,关闭闪关灯关键代码:

     parameter = camera.getParameters(); 

     parameter.setFlashMode(Parameters.FLASH_MODE_OFF);

     camera.setParameters(parameter);

(2)代码实例

        在一个activity中放置两个按钮,一个打开闪光灯,一个关闭闪光灯。在4.0上试验成功,由于系统版本的关系,据说4.2上必须要有startPreview才能运行成功。

在XML中设定权限:

    <uses-permission android:name="android.permission.FLASHLIGHT" />  
    <uses-permission android:name="android.permission.CAMERA" />
    <uses-feature android:name="android.hardware.camera" />
    <uses-feature android:name="android.hardware.camera.autofocus" />


核心代码如下:

                  Button button = (Button) findViewById(R.id.button1);
		Button button2 = (Button) findViewById(R.id.button2);
		
		button.setOnClickListener(new Button.OnClickListener() {
			public void onClick(View v)
			{
				Log.i(TAG, "button.setOnClickListener! ");
				try {
						camera = Camera.open();
						camera.startPreview();	
						if (camera != null)
							Log.i(TAG, "open cameradevice success! ");
				} catch (Exception e) {      //防止程序运行异常报停
					camera = null;
					Log.w(TAG, "open cameraFail");				
					return;
				}    
                                     parameters = camera.getParameters();  
                                     parameters.setFlashMode(Parameters.FLASH_MODE_TORCH);//开启  
                                           camera.setParameters(parameters);  	
			}
		});
		
		button2.setOnClickListener(new Button.OnClickListener() {
			public void onClick(View v)
			{
				Log.i(TAG, "button2.setOnClickListener! ");
				if(camera != null){	  //	容错,避免程序崩溃			
					parameters = camera.getParameters();  
					parameters.setFlashMode(Parameters.FLASH_MODE_OFF); 
				         camera.setParameters(parameters);

					camera.stopPreview();
					camera.release();
					camera = null;
				}
			}
		});



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值