在之前的基础上
在 res 文件夹下面: 添加一个 drawable/local_me.xml
localme_cml
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_checked="true"
android:drawable="@drawable/on" /> <!-- pressed -->
<item android:drawable="@drawable/off" /> <!-- default/unchecked -->
</selector>
主程序:
package com.example.handlightactivity;
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;
/**
*
* @author love
*
* 原理:
* 就是通过 点击按钮,
* 当 点击按钮的时候 打开闪光灯。
* 关闭 按钮的时候 关闭闪光灯
*
*
* */
public class MainActivity extends Activity implements OnClickListener {
private ToggleButton toggleButton;
private Camera camera = Camera.open();
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
toggleButton = (ToggleButton) this.findViewById(R.id.toggleButton1);
toggleButton.setOnClickListener(this);
//保持屏幕
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
}
@Override
public void onClick(View v) {
ToggleButton tb = (ToggleButton) v;
Camera.Parameters param = camera.getParameters();
if(!tb.isChecked()){
// open the camera flash!
param.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH);
toggleButton.setBackgroundColor(0x30ffffff);
// on open on.jpg
tb.setBackgroundDrawable(getResources().getDrawable(R.drawable.on));
}else{
param.setFlashMode(Camera.Parameters.FLASH_MODE_OFF);
toggleButton.setBackgroundColor(0xffffffff);
// off open the off.jpg
tb.setBackgroundDrawable(getResources().getDrawable(R.drawable.off));
}
camera.setParameters(param);
}
@Override
protected void onPause() {
// camera.release();
// Process.killProcess(Process.myPid());
super.onPause();
}
}
效果图: