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