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;
				}
			}
		});

    以上实验就可以达到预期效果。

 

参考原文:http://www.cnblogs.com/lee0oo0/archive/2012/04/05/2433815.html

参考原文:http://blog.csdn.net/guozh/article/details/7379902

你可能感兴趣的:(Android的闪光灯)