9
0
mirror of https://gitee.com/shuto/customCamera.git synced 2026-05-02 00:07:24 +08:00
Issue#17
This commit is contained in:
ChristopheBoucaut
2015-01-19 12:07:06 +01:00
6 changed files with 39 additions and 5 deletions
Binary file not shown.

After

Width:  |  Height:  |  Size: 7.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

@@ -6,9 +6,7 @@
<FrameLayout
android:id="@+id/camera_preview"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true" >
android:layout_height="fill_parent" >
</FrameLayout>
<ImageView
@@ -198,10 +198,46 @@ public class CameraActivity extends Activity {
customCamera.setDisplayOrientation(orientation);
DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
FrameLayout cameraPreview = (FrameLayout) findViewById(R.id.camera_preview);
RelativeLayout.LayoutParams paramsCameraPreview =
new RelativeLayout.LayoutParams(cameraPreview.getLayoutParams());
Size camParameters = customCamera.getParameters().getPictureSize();
int minSize;
int maxSize;
if (camParameters.width > camParameters.height) {
maxSize = camParameters.width;
minSize = camParameters.height;
} else {
maxSize = camParameters.height;
minSize = camParameters.width;
}
int widthScreen = dm.widthPixels;
int heightScreen = dm.heightPixels;
float ratio;
if (widthScreen > heightScreen) {
paramsCameraPreview.height = LayoutParams.FILL_PARENT;
ratio = ( (float)minSize / (float)heightScreen );
paramsCameraPreview.width = (int)(maxSize / ratio);
int marginLeft = (int) (((float)(widthScreen - paramsCameraPreview.width)) / 2);
paramsCameraPreview.setMargins(marginLeft, 0, 0, 0);
} else {
paramsCameraPreview.width = LayoutParams.FILL_PARENT;
ratio = ( (float)minSize / (float)widthScreen );
paramsCameraPreview.height = (int)(maxSize / ratio);
int marginTop = (int) (((float)(heightScreen - paramsCameraPreview.height)) / 2);
paramsCameraPreview.setMargins(0, marginTop, 0, 0);
}
cameraPreview.setLayoutParams(paramsCameraPreview);
// Assign the render camera to the view
CameraPreview myPreview = new CameraPreview(this, customCamera);
FrameLayout preview = (FrameLayout) findViewById(R.id.camera_preview);
preview.addView(myPreview);
cameraPreview.addView(myPreview);
// The zoom bar progress
final SeekBar zoomLevel = (SeekBar) findViewById(R.id.zoomLevel);