Skip to content

Commit f9928ee

Browse files
author
luowei
committed
Fix app:aspectRatio not working at Camera2 google#177
1 parent b63f8a6 commit f9928ee

File tree

1 file changed

+15
-7
lines changed
  • library/src/main/api21/com/google/android/cameraview

1 file changed

+15
-7
lines changed

library/src/main/api21/com/google/android/cameraview/Camera2.java

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,6 @@
3434
import android.util.Log;
3535
import android.util.SparseIntArray;
3636
import android.view.Surface;
37-
3837
import java.nio.ByteBuffer;
3938
import java.util.Arrays;
4039
import java.util.Set;
@@ -263,11 +262,20 @@ Set<AspectRatio> getSupportedAspectRatios() {
263262

264263
@Override
265264
boolean setAspectRatio(AspectRatio ratio) {
266-
if (ratio == null || ratio.equals(mAspectRatio) ||
267-
!mPreviewSizes.ratios().contains(ratio)) {
265+
if (ratio == null || ratio.equals(mAspectRatio)) {
268266
// TODO: Better error handling
269267
return false;
270268
}
269+
270+
if (!mPreviewSizes.ratios().contains(ratio)) {
271+
if (mPreviewSizes.ratios().size() <= 0) {
272+
// may be initialized from layout xml
273+
mAspectRatio = ratio;
274+
return true;
275+
}
276+
return false;
277+
}
278+
271279
mAspectRatio = ratio;
272280
prepareImageReader();
273281
if (mCaptureSession != null) {
@@ -640,8 +648,8 @@ void captureStillPicture() {
640648
new CameraCaptureSession.CaptureCallback() {
641649
@Override
642650
public void onCaptureCompleted(@NonNull CameraCaptureSession session,
643-
@NonNull CaptureRequest request,
644-
@NonNull TotalCaptureResult result) {
651+
@NonNull CaptureRequest request,
652+
@NonNull TotalCaptureResult result) {
645653
unlockFocus();
646654
}
647655
}, null);
@@ -695,13 +703,13 @@ void setState(int state) {
695703

696704
@Override
697705
public void onCaptureProgressed(@NonNull CameraCaptureSession session,
698-
@NonNull CaptureRequest request, @NonNull CaptureResult partialResult) {
706+
@NonNull CaptureRequest request, @NonNull CaptureResult partialResult) {
699707
process(partialResult);
700708
}
701709

702710
@Override
703711
public void onCaptureCompleted(@NonNull CameraCaptureSession session,
704-
@NonNull CaptureRequest request, @NonNull TotalCaptureResult result) {
712+
@NonNull CaptureRequest request, @NonNull TotalCaptureResult result) {
705713
process(result);
706714
}
707715

0 commit comments

Comments
 (0)