2017-08-23 2 views
0

私はカメラレイアウトを持っています。私はフラッシュアイコンを処理する必要があります。通常の内蔵カメラと同様に、アイコンをクリックすると、アイコンとフラッシュモードが変わります。アイコンはアクションバーにあります。カメラのフラッシュをプログラムで処理する

final ImageView flashicon=(ImageView)view.findViewById(R.id.flash_actionbar); 
    flashicon.setOnClickListener(new View.OnClickListener() { 
     Drawable cameraflashautoicon=getResources().getDrawable(R.drawable.cameraflashauto); 
     @Override 
     public void onClick(View v) { 
     if(flashicon.getDrawable().getConstantState().equals(R.drawable.cameraflashauto)){ 
       flashicon.setImageDrawable(cameraflashautoicon); 
      } 
      if(flashicon.getDrawable().getConstantState().equals(R.drawable.cameraflashoff)){ 

      } 
      if(flashicon.getDrawable().getConstantState().equals(R.drawable.cameraflashon)){ 

      } 
     } 
    }); 

これに関連するいくつかの記事を読んだが、何をすべきか分からなかった。助けてください。この質問が提案される方法は理想的ではないかもしれませんので、他のコードや詳細が必要なことを教えてください。

私はサーフェイスビューを使用して、カメラインスタンスを呼び出しています。このため

+0

ここをクリックhttps://stackoverflow.com/a/6069503/3872374 –

答えて

0

次のような実行する必要があります。フラッシュ光が利用可能であるかどうかを

チェック! はいの場合は、オフ/オンにします。 いいえ、あなたのアプリに応じて何でもできます。デバイスのフラッシュの利用可能性をチェックするための を必要とします:

あなたはフラッシュがない場合はfalse、使用可能な場合はtrueを返しますされ、次の

context.getPackageManager().hasSystemFeature(PackageManager.FEATURE_CAMERA_FLASH); 

を使用することができます。

詳細については、を参照してください。

そして閃光ハンドリングするためのコードの下

CameraManager camManager = (CameraManager) getSystemService(Context.CAMERA_SERVICE); 
String cameraId = camManager.getCameraIdList()[0]; // Usually front camera is at 0 position. 

camManager.setTorchMode(cameraId、true)を使用します。

関連する問題