android 手电筒实现
2012-11-22 17:06
211 查看
第一步:在Manifest.xml文件里添加权限
<uses-permission android:name="android.permission.CAMERA"/>
<uses-permission android:name="android.permission.FLASHLIGHT"/>
第二步:获得摄像头参数,并修改闪光灯模式
Camera.Parameters camParam = mCam.getParameters();
// 设置手电筒模式
camParam.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH);
实现代码如下:
import java.util.List;
import android.hardware.Camera;
import android.os.Bundle;
import android.R.bool;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ImageButton;
import android.widget.Toast;
public class MainActivity extends Activity {
// 摄像头对象
private Camera mCam = null;
// 开关按钮
private ImageButton mSwitch;
// 是否打开
private boolean mIsOpen;
// 是否支持手电筒模式
private boolean mIsSupport;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mIsOpen = false;
// 打开摄像头
mCam = Camera.open();
// 获取摄像头参数,判断是否支持手电筒模式
Camera.Parameters camParam = mCam.getParameters();
List<String>flashModes = camParam.getSupportedFlashModes();
if (flashModes != null && flashModes.contains(Camera.Parameters.FLASH_MODE_TORCH)){
mIsSupport = true;
}else {
mIsSupport = false;
}
mSwitch = (ImageButton)findViewById(R.id.imageButton_switch);
mSwitch.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
if(mIsOpen){
closeLight();
} else{
openLight();
}
}
});
openLight();
}
@Override
public void onDestroy(){
super.onDestroy();
closeLight();
mCam.release();
}
private void openLight(){
if (!mIsSupport){
Toast.makeText(this, "你的手机不支持手电筒模式!!!", Toast.LENGTH_SHORT).show();
return ;
}
if (!mIsOpen){
mIsOpen = !mIsOpen;
try {
Camera.Parameters camParam = mCam.getParameters();
// 设置手电筒模式
camParam.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH);
mCam.setParameters(camParam);
} catch (Exception e) {
// TODO: handle exception
Toast.makeText(this, "Exception:FLASH_MODE_TORCH", Toast.LENGTH_SHORT).show();
}
}
}
private void closeLight(){
if (mIsOpen){
mIsOpen = !mIsOpen;
try {
Camera.Parameters camParam = mCam.getParameters();
String flashMode = camParam.getFlashMode();
// 关闭
camParam.setFlashMode(Camera.Parameters.FLASH_MODE_OFF);
mCam.setParameters(camParam);
} catch (Exception e) {
// TODO: handle exception
Toast.makeText(this, "Exception:FLASH_MODE_OFF", Toast.LENGTH_SHORT).show();
}
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
}
原文地址:/article/8851665.html
<uses-permission android:name="android.permission.CAMERA"/>
<uses-permission android:name="android.permission.FLASHLIGHT"/>
第二步:获得摄像头参数,并修改闪光灯模式
Camera.Parameters camParam = mCam.getParameters();
// 设置手电筒模式
camParam.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH);
实现代码如下:
import java.util.List;
import android.hardware.Camera;
import android.os.Bundle;
import android.R.bool;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ImageButton;
import android.widget.Toast;
public class MainActivity extends Activity {
// 摄像头对象
private Camera mCam = null;
// 开关按钮
private ImageButton mSwitch;
// 是否打开
private boolean mIsOpen;
// 是否支持手电筒模式
private boolean mIsSupport;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mIsOpen = false;
// 打开摄像头
mCam = Camera.open();
// 获取摄像头参数,判断是否支持手电筒模式
Camera.Parameters camParam = mCam.getParameters();
List<String>flashModes = camParam.getSupportedFlashModes();
if (flashModes != null && flashModes.contains(Camera.Parameters.FLASH_MODE_TORCH)){
mIsSupport = true;
}else {
mIsSupport = false;
}
mSwitch = (ImageButton)findViewById(R.id.imageButton_switch);
mSwitch.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
if(mIsOpen){
closeLight();
} else{
openLight();
}
}
});
openLight();
}
@Override
public void onDestroy(){
super.onDestroy();
closeLight();
mCam.release();
}
private void openLight(){
if (!mIsSupport){
Toast.makeText(this, "你的手机不支持手电筒模式!!!", Toast.LENGTH_SHORT).show();
return ;
}
if (!mIsOpen){
mIsOpen = !mIsOpen;
try {
Camera.Parameters camParam = mCam.getParameters();
// 设置手电筒模式
camParam.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH);
mCam.setParameters(camParam);
} catch (Exception e) {
// TODO: handle exception
Toast.makeText(this, "Exception:FLASH_MODE_TORCH", Toast.LENGTH_SHORT).show();
}
}
}
private void closeLight(){
if (mIsOpen){
mIsOpen = !mIsOpen;
try {
Camera.Parameters camParam = mCam.getParameters();
String flashMode = camParam.getFlashMode();
// 关闭
camParam.setFlashMode(Camera.Parameters.FLASH_MODE_OFF);
mCam.setParameters(camParam);
} catch (Exception e) {
// TODO: handle exception
Toast.makeText(this, "Exception:FLASH_MODE_OFF", Toast.LENGTH_SHORT).show();
}
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
}
原文地址:/article/8851665.html
相关文章推荐
- android 手电筒的实现
- Android实现手机手电筒
- android 6.0 手电筒app简单实现
- android 手电筒的实现
- Android实现一个简单的手电筒
- android 手电筒实现Demo
- android 手电筒的实现
- android 手电筒的实现
- Android使用闪光灯作为手电筒的简单实现
- android 开启闪关灯手电筒的实现
- android---护眼灯和兼容性高的手电筒实现
- android 手电筒的实现
- android 手电筒电源键关闭功能实现
- Android实现手电筒电源键关闭功能
- Android 手电筒功能实现
- android 实现手电筒基本功能
- android通过led实现手电筒
- Android 七彩手电筒的实现与应用
- android 实现手电筒功能
- Android之实现手电筒实例