9
0
mirror of https://gitee.com/shuto/customCamera.git synced 2024-10-06 10:22:07 +08:00

Première mise en place d'un fix. A retravailler.

This commit is contained in:
Christophe BOUCAUT 2015-02-06 12:16:34 +01:00
parent a5cc941edd
commit 8da0c5a4e0
2 changed files with 25 additions and 9 deletions

View File

@ -14,6 +14,6 @@
<!-- Application theme. -->
<style name="AppTheme" parent="AppBaseTheme">
</style>
</style>
</resources>

View File

@ -243,17 +243,33 @@ public class CameraActivity extends Activity {
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);
float ratio = widthScreen > heightScreen ? ((float)minSize / (float)heightScreen) : ((float)minSize / (float)widthScreen);
/**
* landscape and width resized isn't more large screen's width.
* OR
* portrait and height resized is more large screen's height.
*/
if (
(widthScreen > heightScreen && (int)(maxSize / ratio) <= widthScreen) ||
(widthScreen < heightScreen && (int)(maxSize / ratio) > heightScreen)
) {
paramsCameraPreview.height = LayoutParams.MATCH_PARENT;
if (widthScreen < heightScreen) {
ratio = ((float)maxSize / (float)heightScreen);
paramsCameraPreview.width = (int)(minSize / ratio);
} else {
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);
paramsCameraPreview.width = LayoutParams.MATCH_PARENT;
if (widthScreen > heightScreen) {
ratio = ((float)maxSize / (float)widthScreen);
paramsCameraPreview.height = (int)(minSize / ratio);
} else {
paramsCameraPreview.height = (int)(maxSize / ratio);
}
int marginTop = (int) (((float)(heightScreen - paramsCameraPreview.height)) / 2);
paramsCameraPreview.setMargins(0, marginTop, 0, 0);
}