权限:
<uses-permissionandroid:name="android.permission.FLASHLIGHT" />
<uses-permissionandroid:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.CAMERA"/>
<uses-featureandroid:name="android.hardware.camera" />
布局
<?xml version="1.0"encoding="utf-8"?>
<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="center"
android:orientation="vertical">
<ToggleButton
android:id="@+id/toggleButton1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:checked="true"
android:text="ToggleButton" />
</LinearLayout>
源码
package cn.lee.handlight;
import android.app.Activity;
import android.hardware.Camera;
import android.hardware.Camera.Parameters;
import android.os.Bundle;
import android.os.Process;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.WindowManager;
import android.widget.ToggleButton;
public class HandLightActivity extends Activityimplements OnClickListener {
privateToggleButton toggleButton;
privateCamera camera = Camera.open();
/**Called when the activity is first created. */
@Override
publicvoid onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
toggleButton= (ToggleButton) this.findViewById(R.id.toggleButton1);
toggleButton.setOnClickListener(this);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
//保持屏幕
}
@Override
publicvoid onClick(View v) {
ToggleButtontb = (ToggleButton) v;
Camera.Parametersparam = camera.getParameters();
if(!tb.isChecked()){
param.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH);
toggleButton.setBackgroundColor(0x30ffffff);
}else{
param.setFlashMode(Camera.Parameters.FLASH_MODE_OFF);
toggleButton.setBackgroundColor(0xffffffff);
}
camera.setParameters(param);
}
@Override
protectedvoid onPause() {
// camera.release();
// Process.killProcess(Process.myPid());
super.onPause();
}
}