我正在开发一款小型相机应用程序。
详细信息:
我有浮动动作按钮,可以从后面切换摄像机视图 从前到后再次。我有一个以上的按钮所以我有一个 在我的onClick方法中切换语句。
问题:
我使用if语句和整数来确定相机是否 面向后方或前方。 (理论上它应该工作,对吗?)但是当我 运行它,按钮的图标改变,这应该是 伴随着相机视图的变化。也是,之后 点击一次,它就会卡住,我无法改回来。
注意:我使用 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 :(得分: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();
}
}