今天带来的是闪光灯,首先来看看我们的代码,其实这个很简单大家跟我一起看下源代码就只知道了
public class FlashlightActivity extends Activity {
private Button statusButton = null;
private Camera camera = null;
private Parameters parameters = null;
public static boolean statusFlag = true;
private int back = 0;// 判断按几次back
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
statusButton = (Button) findViewById(R.id.statusButton);
statusButton.setOnClickListener(new Mybutton());
}
class Mybutton implements OnClickListener {
@Override
public void onClick(View v) {
if (statusFlag) {
statusButton.setBackgroundResource(R.drawable.switchon);
camera = Camera.open();
parameters = camera.getParameters();
parameters.setFlashMode(Parameters.FLASH_MODE_TORCH);// 开启
camera.setParameters(parameters);
statusFlag = false;
} else {
statusButton.setBackgroundResource(R.drawable.switchoff);
parameters.setFlashMode(Parameters.FLASH_MODE_OFF);// 关闭
camera.setParameters(parameters);
statusFlag = true;
camera.release();
}
}
}
// 判断点了几次是关还是开
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
back++;
CloseApp();
}
return false;// 设置成false让back失效 ,true表示 不失效
}
public void CloseApp() { // 关闭程序
if (statusFlag) {// 开关关闭时
FlashlightActivity.this.finish();
android.os.Process.killProcess(android.os.Process.myPid());// 关闭进程
} else if (!statusFlag) {// 开关打开时
camera.release();
FlashlightActivity.this.finish();
android.os.Process.killProcess(android.os.Process.myPid());// 关闭进程
statusFlag = true;// 避免,打开开关后退出程序,再次进入不打开开关直接退出时,程序错误
}
}
}
这是主函数中的代码,大家看了是不是也觉得很简单其实就是很简单。。。。
XML中的没什么我就不贴了。。
但是有个重点的是这个因为我们使用的是Android中的系统我们一定要记得申请权限
<!-- 开启闪光灯权限 -->
<uses-permission android:name="android.permission.FLASHLIGHT"/>
<uses-permission android:name="android.permission.DISABLE_KEYGUARD"/>
源代码下载处