不能让我的手电筒工作一次以上-android
大家好,我正在尝试为android手机构建我的第一个应用程序。这是一个有一些特点的手电筒。我已经为开/关按钮编写了代码,但是使用我的退出代码,开/关按钮只工作一次,我不知道如何将其修复为工作多次。这是我的密码:不能让我的手电筒工作一次以上-android,android,flashlight,android-imagebutton,Android,Flashlight,Android Imagebutton,大家好,我正在尝试为android手机构建我的第一个应用程序。这是一个有一些特点的手电筒。我已经为开/关按钮编写了代码,但是使用我的退出代码,开/关按钮只工作一次,我不知道如何将其修复为工作多次。这是我的密码: public class MainActivity extends ActionBarActivity { ImageButton OnOff; Button SOS, Pallette; private Camera camera; boolean isFlashOn; boolea
public class MainActivity extends ActionBarActivity {
ImageButton OnOff;
Button SOS, Pallette;
private Camera camera;
boolean isFlashOn;
boolean isFlashOff;
boolean hasFlash;
Parameters params;
MediaPlayer mp;
String blink = "01010101";
long blinkDelay = 50;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// declare flash switch button
OnOff = (ImageButton) findViewById(R.id.bOnOff);
// declare sos flash button
SOS = (Button) findViewById(R.id.bSOS);
// Now we check if our device has flash so we can turn on
hasFlash = getApplicationContext().getPackageManager()
.hasSystemFeature(PackageManager.FEATURE_CAMERA_FLASH);
if (!hasFlash) {
// if our device doesn't have flash we show an error message
// after pressing "OK" on error message we close the application
AlertDialog alert = new AlertDialog.Builder(MainActivity.this)
.create();
alert.setTitle("Error");
alert.setMessage("Sorry but your device doesn't support flash");
alert.setButton("OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
finish();
}
});
alert.show();
return;
}
// Now we get the Camera
getCamera();
// Display button image
toggleButtonImage();
OnOff.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (isFlashOn) {
// turn off flash
turnOffFlash();
} else {
// turn on flash
turnOnFlash();
}
}
});
private void getCamera() {
if (camera == null) {
try {
camera = Camera.open();
params = camera.getParameters();
} catch (RuntimeException e) {
Log.e("Camera Error", e.getMessage());
}
}
}
private void turnOnFlash() {
if (!isFlashOn) {
if (camera == null || params == null) {
return;
}
params = camera.getParameters();
params.setFlashMode(Parameters.FLASH_MODE_TORCH);
camera.setParameters(params);
camera.startPreview();
isFlashOn = true;
}
toggleButtonImage();
}
private void turnOffFlash() {
if (isFlashOn) {
if (camera == null || params == null) {
return;
}
params = camera.getParameters();
params.setFlashMode(Parameters.FLASH_MODE_OFF);
camera.setParameters(params);
camera.stopPreview();
isFlashOff = false;
}
toggleButtonImage();
}
private void toggleButtonImage() {
if (isFlashOn) {
OnOff.setImageResource(R.drawable.on);
} else {
OnOff.setImageResource(R.drawable.off);
}
}
@Override
protected void onDestroy() {
super.onDestroy();
}
@Override
protected void onRestart() {
super.onRestart();
}
@Override
protected void onStop() {
super.onStop();
if (camera != null) {
camera.release();
camera = null;
}
}
}
在关闭闪存()
方法中更改此选项
isFlashOff = false;
进入
您没有在任何地方使用isFlashOff
在任何情况下都应拆除瓦莱贝尔
boolean isFlashOff;
分享你的日志错误非常感谢!!!!!我已经做到了这一点,并完美地工作了!!!!非常感谢你!!!!!
boolean isFlashOff;