最近业务需要,针对原生Camera的预览需要做一些优化
本来预览会根据当前屏幕尺寸比例选择一个最合适的分辨率进行预览,但是当选择16:9的分辨率时,预览一直是640x480,想要把分辨率调整为1920x1080
当前的方案不支持4K,所以设置最大为1920x1080,
代码如下:
diff --git a/apps/Camera2/src/com/android/camera/CaptureModule.java b/apps/Camera2/src/com/android/camera/CaptureModule.java
old mode 100644
new mode 100755
index 00a58cd3c..87fa5935c
--- a/apps/Camera2/src/com/android/camera/CaptureModule.java
+++ b/apps/Camera2/src/com/android/camera/CaptureModule.java
@@ -665,8 +665,12 @@ public class CaptureModule extends CameraModule implements
private void updatePreviewBufferSize() {
synchronized (mSurfaceTextureLock) {
if (mPreviewSurfaceTexture != null) {
- mPreviewSurfaceTexture.setDefaultBufferSize(mPreviewBufferWidth,
- mPreviewBufferHeight);
+ Log.d(TAG,"updatePreviewBufferSize width:"+mPreviewBufferWidth + ",height:" + mPreviewBufferHeight);
+ if(mPictureSize.getWidth() >= 1920 ){
+ mPreviewSurfaceTexture.setDefaultBufferSize(1920,1080);
+ }else{
+ mPreviewSurfaceTexture.setDefaultBufferSize(mPictureSize.getWidth(),mPictureSize.getHeight());
+ }
}
}
}