2017-08-04 10 views
0

私は小さなカメラアプリを開発しています。CameraViewが切り替わらない

詳細:

私は再び背中合わせに から前にカメラビューを切り替えるアクションボタンを浮動しています。私は switchステートメントをonClickメソッド内に持っているので、複数のボタンがあります。

問題:

私はカメラは背面に向け またはフロントであるかどうかを判断するための文と整数場合を使用していました。 (理論的にはうまくいくはずですが)私が を実行すると、ボタンのアイコンが変わり、 となり、カメラのビューも変更されます。また、 を一度クリックすると、つづれてしまい、元に戻せません。

注:私はカメラにアクセスするためにFlurge camerKitライブラリを使用。

私のコードで何が問題なのですか?

ありがとうございます!

は、ここに私のコードです:

@Override 
public void onClick(View v) { 

    switch (v.getId()) { 

     case R.id.floatingActionButton2: 
      mDrawerLayout.openDrawer(Gravity.LEFT); 
      break; 

     case R.id.frontcam: 

      if ((cameraFront % 2) == 0){ //by default int cameraFront = 1 

       cameraView.setFacing(CameraKit.Constants.FACING_FRONT); 
       frontCamera.setImageResource(R.mipmap.ic_camera_front_white_24dp); 
       break; 

      } 

      else { 

       cameraView.setFacing(CameraKit.Constants.FACING_BACK); 
       frontCamera.setImageResource(R.mipmap.ic_camera_rear_white_24dp); 
       break; 

      } 

//more code stuff 

} 
} 

答えて

0
private int getFrontCameraID() { 
    PackageManager pm = getActivity().getPackageManager(); 
    if (pm.hasSystemFeature(PackageManager.FEATURE_CAMERA_FRONT)) { 
     return CameraInfo.CAMERA_FACING_FRONT; 
    } 
    return getBackCameraID(); 
} 

ボタンのクリックで通話

public void onClick(View v) { 
      if (mCameraID == CameraInfo.CAMERA_FACING_FRONT) { 
       mCameraID = getBackCameraID(); 
      } else { 
       mCameraID = getFrontCameraID(); 
      } 
      restartPreview(); 
     } 
    }); 

    private void restartPreview() { 
    try { 
     if (mCamera != null) { 
      stopCameraPreview(); 
      mCamera.release(); 
      //mCamera = null; 
     } 
     getCamera(mCameraID); 
     startCameraPreview(); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
} 
関連する問題