9
0
mirror of https://gitee.com/shuto/customCamera.git synced 2026-04-14 00:00:03 +08:00

Modification permettant de gérer mieux les différents états de l'applications (pause, start, restart, etc).

Ajout de message de log plus fin.
This commit is contained in:
Christophe BOUCAUT
2014-11-25 16:00:23 +01:00
parent eebbc0d225
commit 9f5238023b
3 changed files with 47 additions and 48 deletions
@@ -63,6 +63,32 @@ public class CameraActivity extends Activity {
String imgBackgroundBase64 = currentBundle.getString("imgBackgroundBase64");
}
// The opacity bar
SeekBar switchOpacity = (SeekBar) findViewById(R.id.switchOpacity);
// Event on change opacity.
switchOpacity.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {
int progress = 0;
@Override
public void onProgressChanged(SeekBar seekBar, int progresValue, boolean fromUser) {
progress = progresValue;
ImageView imageView = (ImageView) findViewById(R.id.normal);
float newOpacity = (float) (0.2+progress*0.1);
imageView.setAlpha(newOpacity);
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {}
});
}
@Override
protected void onStart() {
super.onStart();
// Get informations about the default display for the device
Display defaultDisplay = getWindowManager().getDefaultDisplay();
@@ -101,30 +127,18 @@ public class CameraActivity extends Activity {
CameraPreview mPreview = new CameraPreview(this, mCamera);
FrameLayout preview = (FrameLayout) findViewById(R.id.camera_preview);
preview.addView(mPreview);
// The opacity bar
SeekBar switchOpacity = (SeekBar) findViewById(R.id.switchOpacity);
// Event on change opacity.
switchOpacity.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {
int progress = 0;
}
@Override
public void onProgressChanged(SeekBar seekBar, int progresValue, boolean fromUser) {
progress = progresValue;
ImageView imageView = (ImageView) findViewById(R.id.normal);
float newOpacity = (float) (0.2+progress*0.1);
imageView.setAlpha(newOpacity);
}
/**
* Method to pause the activity.
*/
protected void onPause() {
super.onPause();
ManagerCamera.clearCameraAccess();
FrameLayout preview = (FrameLayout) findViewById(R.id.camera_preview);
preview.removeAllViews();
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {}
});
}
// Event on touch screen to call the manager of the zoom & the auto focus.
@Override
public boolean onTouchEvent(MotionEvent event) {
@@ -248,21 +262,6 @@ public class CameraActivity extends Activity {
});
}
}
/**
* Method to destroy the view (here, the activity).
*/
protected void onDestroy() {
super.onDestroy();
ManagerCamera.clearCameraAccess();
}
/**
* Method to apply the new view after rotation.
*/
protected void onResume(){
super.onResume();
}
/**
* Method to get the device default orientation.
@@ -22,6 +22,7 @@ public class CameraPreview extends SurfaceView implements SurfaceHolder.Callback
*/
public CameraPreview(Context context, Camera camera) {
super(context);
// assign camera
mCamera = camera;
mHolder = getHolder();
@@ -31,7 +32,7 @@ public class CameraPreview extends SurfaceView implements SurfaceHolder.Callback
/**
* When the view is created.
* @param SurfaceHolder holder
* @override.
*/
public void surfaceCreated(SurfaceHolder holder) {
try {
@@ -41,9 +42,7 @@ public class CameraPreview extends SurfaceView implements SurfaceHolder.Callback
// Start link between the view and the camera.
mCamera.startPreview();
} catch (IOException e) {
mCamera.release();
mCamera = null;
Log.e("customCamera", "Error setting camera preview: " + e.getMessage());
Log.e("customCamera", "Error setting camera preview to create surface: " + e.getMessage());
}
}
@@ -61,14 +60,16 @@ public class CameraPreview extends SurfaceView implements SurfaceHolder.Callback
// stop current instance.
mCamera.setPreviewCallback(null);
mCamera.stopPreview();
} catch (Exception e) {}
} catch (Exception e) {
Log.e("customCamera", "Error setting camera preview at null: " + e.getMessage());
}
try {
// Start new link between the view and the camera.
mCamera.setPreviewDisplay(mHolder);
mCamera.startPreview();
} catch (Exception e) {
Log.d("error", "Error starting camera preview: " + e.getMessage());
Log.e("error", "Error starting camera preview with mHolder: " + e.getMessage());
}
}
@@ -19,19 +19,18 @@ public class ManagerCamera {
* A safe way to get an instance of the Camera object.
* @return Camera | null
*/
public static Camera getCameraInstance(){
public static Camera getCameraInstance() {
// If camera is already instanced and available, return this resource.
if (ManagerCamera.mCamera != null) {
return mCamera;
return ManagerCamera.mCamera;
}
// Start back camera.
Camera c = null;
try {
c = Camera.open(0);
}
catch (RuntimeException e) {
Log.d("customCamera", "Can't open the camera.");
} catch (RuntimeException e) {
Log.e("customCamera", "Can't open the camera back.");
}
ManagerCamera.mCamera = c;