2017-08-23 45 views
0

我有相機佈局。我需要這個來處理Flash圖標。就像在普通的內置攝像頭中一樣,您可以單擊圖標,圖標和閃光模式更改。該圖標位於操作欄中。以編程方式處理相機閃光燈

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

您應該這樣做:

檢查閃光燈是否可用? 如果是,然後關閉/開 如果沒有,那麼你可以根據你的應用做任何事情。需要 對於設備檢查閃光的可用性:

您可以使用以下

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

如果Flash可將返回true,否則爲false。

請參閱http://developer.android.com/reference/android/content/pm/PackageManager.html瞭解更多信息。

然後使用下面的代碼閃光處理

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

camManager.setTorchMode(cameraId,TRUE);