From dd9144aa32bc868dc3b7a16c7f6a7624ef73e072 Mon Sep 17 00:00:00 2001 From: xiaoyan Date: Wed, 13 Jul 2022 10:30:14 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E5=A2=9E=E5=8A=A01=E7=A7=922=E6=8B=8D?= =?UTF-8?q?=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/build.gradle | 4 +- .../outdoor/activity/PicturesActivity.java | 42 ++++++++++++++++++- app/src/main/res/layout/activity_pictures.xml | 9 ---- 3 files changed, 43 insertions(+), 12 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index b14a87c..77c2faa 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -9,8 +9,8 @@ android { applicationId "com.navinfo.outdoor" minSdkVersion 22 targetSdkVersion 30 - versionCode 22 - versionName "8.220615" + versionCode 23 + versionName "8.220617" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } lintOptions { diff --git a/app/src/main/java/com/navinfo/outdoor/activity/PicturesActivity.java b/app/src/main/java/com/navinfo/outdoor/activity/PicturesActivity.java index a9774ab..692285c 100644 --- a/app/src/main/java/com/navinfo/outdoor/activity/PicturesActivity.java +++ b/app/src/main/java/com/navinfo/outdoor/activity/PicturesActivity.java @@ -56,6 +56,10 @@ import com.otaliastudios.cameraview.CameraView; import com.otaliastudios.cameraview.FileCallback; import com.otaliastudios.cameraview.PictureResult; import com.otaliastudios.cameraview.controls.Mode; +import com.otaliastudios.cameraview.size.AspectRatio; +import com.otaliastudios.cameraview.size.Size; +import com.otaliastudios.cameraview.size.SizeSelector; +import com.otaliastudios.cameraview.size.SizeSelectors; import com.tencent.map.geolocation.TencentLocation; import com.tencent.tencentmap.mapsdk.maps.CameraUpdate; import com.tencent.tencentmap.mapsdk.maps.CameraUpdateFactory; @@ -311,7 +315,7 @@ public class PicturesActivity extends BaseActivity implements View.OnClickListen public void onPictureTaken(@NonNull PictureResult result) { if (result != null && result.getData() != null && result.getData().length > 0) { super.onPictureTaken(result); - System.out.println("收到拍照按钮jieguo"); + System.out.println("收到拍照按钮jieguo:"+result.getSize().toString()); isBack = true; // 如果当前手机是竖向,则不 if (isOration) { @@ -563,6 +567,7 @@ public class PicturesActivity extends BaseActivity implements View.OnClickListen picturesBuilder.append("userId:").append(Constant.USHERED).append(","); } camera.setMode(Mode.PICTURE); + initCameraSize(); } @Override @@ -717,6 +722,41 @@ public class PicturesActivity extends BaseActivity implements View.OnClickListen tvMapView.onResume(); } + /** + * 设置相机的拍照size + * */ + private void initCameraSize() { + SizeSelector maxWidth = SizeSelectors.maxWidth(1280); + SizeSelector maxHeight = SizeSelectors.maxHeight(1280); + SizeSelector minWidth = SizeSelectors.minWidth(720); + SizeSelector minHeight = SizeSelectors.minHeight(720); + SizeSelector maxDimensions = SizeSelectors.and(maxWidth, maxHeight); // Matches sizes bigger than 1000x2000. + SizeSelector minDimensions = SizeSelectors.and(minWidth, minHeight); // Matches sizes bigger than 1000x2000. + SizeSelector verticalRatio = SizeSelectors.aspectRatio(AspectRatio.of(720, 1280), 0.2f); // Matches 1:1 sizes. + SizeSelector horzentalRatio = SizeSelectors.aspectRatio(AspectRatio.of(1280, 720), 0.2f); // Matches 1:1 sizes. + + SizeSelector result = SizeSelectors.or( + SizeSelectors.and(verticalRatio, maxDimensions, minDimensions), // Try to match both constraints + SizeSelectors.and(horzentalRatio, maxDimensions, minDimensions), // Try to match both constraints + verticalRatio, // If none is found, at least try to match the aspect ratio + horzentalRatio, // If none is found, at least try to match the aspect ratio + SizeSelectors.biggest() // If none is found, take the biggest + ); + camera.setPictureSize(result); + camera.setPreviewStreamSize(result); + /** + * app:cameraPictureSizeAspectRatio="1920:1080" + * app:cameraPictureSizeBiggest="true" + * app:cameraPictureSizeMaxArea="3686400" + * app:cameraPictureSizeMaxHeight="1920" + * app:cameraPictureSizeMaxWidth="1920" + * app:cameraPictureSizeMinArea="1166400" + * app:cameraPictureSizeMinHeight="1080" + * app:cameraPictureSizeMinWidth="1080" + * app:cameraPictureSizeSmallest="true" + * */ + } + @Override protected void onRestart() { super.onRestart(); diff --git a/app/src/main/res/layout/activity_pictures.xml b/app/src/main/res/layout/activity_pictures.xml index 9fe0cab..53b8153 100644 --- a/app/src/main/res/layout/activity_pictures.xml +++ b/app/src/main/res/layout/activity_pictures.xml @@ -23,15 +23,6 @@ android:keepScreenOn="true" app:cameraPictureFormat="jpeg" app:cameraPictureMetering="true" - app:cameraPictureSizeAspectRatio="1920:1080" - app:cameraPictureSizeBiggest="true" - app:cameraPictureSizeMaxArea="3686400" - app:cameraPictureSizeMaxHeight="1920" - app:cameraPictureSizeMaxWidth="1920" - app:cameraPictureSizeMinArea="1166400" - app:cameraPictureSizeMinHeight="1080" - app:cameraPictureSizeMinWidth="1080" - app:cameraPictureSizeSmallest="true" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent"