New getSurfaceSize internal method

pull/393/head
Mattia Iavarone 7 years ago
parent d462b83048
commit e5adf4d0c4
  1. 4
      cameraview/src/main/java/com/otaliastudios/cameraview/Camera1.java
  2. 11
      cameraview/src/main/java/com/otaliastudios/cameraview/CameraController.java
  3. 15
      demo/src/main/java/com/otaliastudios/cameraview/demo/PicturePreviewActivity.java
  4. 7
      demo/src/main/java/com/otaliastudios/cameraview/demo/VideoPreviewActivity.java

@ -72,7 +72,7 @@ class Camera1 extends CameraController implements Camera.PreviewCallback, Camera
*/
@Override
public void onSurfaceAvailable() {
LOG.i("onSurfaceAvailable:", "Size is", mPreview.getOutputSurfaceSize());
LOG.i("onSurfaceAvailable:", "Size is", getSurfaceSize(REF_VIEW));
schedule(null, false, new Runnable() {
@Override
public void run() {
@ -90,7 +90,7 @@ class Camera1 extends CameraController implements Camera.PreviewCallback, Camera
*/
@Override
public void onSurfaceChanged() {
LOG.i("onSurfaceChanged, size is", mPreview.getOutputSurfaceSize());
LOG.i("onSurfaceChanged, size is", getSurfaceSize(REF_VIEW));
schedule(null, true, new Runnable() {
@Override
public void run() {

@ -493,21 +493,30 @@ abstract class CameraController implements
return offset(reference1, reference2) % 180 != 0;
}
@Nullable
final Size getPictureSize(@SuppressWarnings("SameParameterValue") int reference) {
if (mCaptureSize == null || mMode == Mode.VIDEO) return null;
return flip(REF_SENSOR, reference) ? mCaptureSize.flip() : mCaptureSize;
}
@Nullable
final Size getVideoSize(@SuppressWarnings("SameParameterValue") int reference) {
if (mCaptureSize == null || mMode == Mode.PICTURE) return null;
return flip(REF_SENSOR, reference) ? mCaptureSize.flip() : mCaptureSize;
}
@Nullable
final Size getPreviewSize(int reference) {
if (mPreviewSize == null) return null;
return flip(REF_SENSOR, reference) ? mPreviewSize.flip() : mPreviewSize;
}
@Nullable
final Size getSurfaceSize(int reference) {
if (mPreview == null) return null;
return flip(REF_VIEW, reference) ? mPreview.getOutputSurfaceSize().flip() : mPreview.getOutputSurfaceSize();
}
//endregion
@ -561,7 +570,7 @@ abstract class CameraController implements
// Create our own default selector, which will be used if the external mPreviewSizeSelector
// is null, or if it fails in finding a size.
Size targetMinSize = mPreview.getOutputSurfaceSize();
Size targetMinSize = getSurfaceSize(REF_VIEW);
AspectRatio targetRatio = AspectRatio.of(mCaptureSize.getWidth(), mCaptureSize.getHeight());
if (flip) targetRatio = targetRatio.inverse();
LOG.i("size:", "computePreviewSize:", "targetRatio:", targetRatio, "targetMinSize:", targetMinSize);

@ -2,8 +2,11 @@ package com.otaliastudios.cameraview.demo;
import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import androidx.annotation.Nullable;
import android.util.Log;
import android.widget.ImageView;
import com.otaliastudios.cameraview.AspectRatio;
@ -45,6 +48,18 @@ public class PicturePreviewActivity extends Activity {
imageView.setImageBitmap(bitmap);
}
});
if (result.isSnapshot()) {
// Log the real size for debugging reason.
BitmapFactory.Options options = new BitmapFactory.Options();
options.inJustDecodeBounds = true;
BitmapFactory.decodeByteArray(result.getData(), 0, result.getData().length, options);
if (result.getRotation() % 180 != 0) {
Log.e("PicturePreview", "The picture full size is " + result.getSize().getHeight() + "x" + result.getSize().getWidth());
} else {
Log.e("PicturePreview", "The picture full size is " + result.getSize().getWidth() + "x" + result.getSize().getHeight());
}
}
}
@Override

@ -5,6 +5,8 @@ import android.media.MediaPlayer;
import android.net.Uri;
import android.os.Bundle;
import androidx.annotation.Nullable;
import android.util.Log;
import android.view.View;
import android.view.ViewGroup;
import android.widget.MediaController;
@ -73,6 +75,11 @@ public class VideoPreviewActivity extends Activity {
lp.height = (int) (viewWidth * (videoHeight / videoWidth));
videoView.setLayoutParams(lp);
playVideo();
if (result.isSnapshot()) {
// Log the real size for debugging reason.
Log.e("VideoPreview", "The video full size is " + videoWidth + "x" + videoHeight);
}
}
});
}

Loading…
Cancel
Save