2017-02-21 16 views
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); 


    } 

} 

答えて

1

私はまたdescribed on my blogとして、懐中電灯のAndroidアプリケーションの作成に興味を持っている人のための参考になります。このためのソリューションを持っています。

これらの行は、Manifest.xmlファイルに入力したところです。

<activity android:name=".MainActivity" android:configChanges="orientation|screenSize"> 
+3

あなたのブログにあまり頻繁にリンクしないように注意してください。これは嫌になってしまいます。ようこそ:D –

+2

あなたがリンクしているものは、もしあればあなたが所有していると言ってください。そうしないと、スパムです。 –

+3

自分のアフィリエイトを公開する必要がある自分の商品やブログを宣伝したい場合は注意してください**そうしないと、回答が迷惑メールとして表示されることがあります。 [スパマーにならない方法](https://stackoverflow.com/help/promotion) – DavidPostill

関連する問題