0
我正在创建手电筒Android应用程序..并面临下面的问题..请指导我... 当我按下potrait模式中的按钮闪光灯继续,当我旋转到风景模式闪光灯熄灭..无法正确定位手电筒Android应用程序
ImageButton imagebuttonon, imagebuttonoff;
public static Camera cmr;
Camera.Parameters parameters;
boolean isFlash = false;
boolean isOn = false;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
imagebuttonoff = (ImageButton) findViewById(R.id.imagebuttonoff);
if (getApplicationContext().getPackageManager().hasSystemFeature(PackageManager.FEATURE_CAMERA_FLASH))
{
cmr = Camera.open();
parameters = cmr.getParameters();
isFlash = true;
}
imagebuttonoff.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (isFlash)
{
//if flash light is not on
if (!isOn) {
imagebuttonoff.setImageResource(R.drawable.onswitch); parameters.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH);
cmr.setParameters(parameters);
cmr.startPreview();
isOn = true;
} else {
imagebuttonoff.setImageResource(R.drawable.offswitch);
parameters.setFlashMode(Camera.Parameters.FLASH_MODE_OFF);
cmr.setParameters(parameters);
cmr.stopPreview();
isOn = false;
}
} else {
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
builder.setTitle("Error");
builder.setMessage("Flash light not available");
builder.setPositiveButton("ok", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
finish();
}
});
AlertDialog alertDialog = builder.create();
alertDialog.show();
}
}
});
}
@Override
protected void onDestroy() {
super.onDestroy();
}
@Override
protected void onPause() {
super.onPause();
cmr.stopPreview();
}
@Override
protected void onRestart() {
super.onRestart();
}
@Override
protected void onResume() {
super.onResume();
if (isOn)
cmr.startPreview();
}
@Override
protected void onStart() {
super.onStart();
cmr.startPreview();
}
@Override
protected void onStop() {
super.onStop();
if (cmr != null)
cmr.release();
cmr = null;
}
@Override
protected void onSaveInstanceState(Bundle outState) {
outState.getBoolean("mode", false);
super.onSaveInstanceState(outState);
}
@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
}
}
请注意不要太频繁地链接到您的博客,这是一种令人不悦的做法。欢迎登机:D –
请记住,直接说,你连接的东西是由你拥有的,如果是的话。如果你不这样做,那就是垃圾邮件。 –
请注意,如果您想宣传自己的产品/博客,您必须透露您的联属**,否则您的答案可能会被标记为垃圾邮件。请阅读[如何不成为垃圾邮件发送者](https://stackoverflow.com/help/promotion) – DavidPostill