在拍摄之前,我如何获得将通过Android相机拍摄的照片的默认大小(像素)



如果它是由Android设备屏幕的分辨率决定的,有没有办法通过程序获得该分辨率的值?

如果它是由安卓设备的屏幕的分辨率决定的

没有。

我如何获得将通过安卓相机拍摄的照片的默认大小(像素)

没有"照片的默认大小"。

如果您自己使用android.hardware.Cameraandroid.hardware.camera2 API,则需要从可用的分辨率中指定所需的分辨率。

如果你使用的是ACTION_IMAGE_CAPTURE,分辨率将部分取决于你是否通过EXTRA_OUTPUT,但其他方面取决于相机应用程序。有数千种Android设备型号,附带数百种不同的预装相机应用程序,还有许多其他相机应用程序可以通过Play Store等分销渠道获得。他们将使用android.hardware.Cameraandroid.hardware.camera2 API,并通过他们想要的任何算法选择他们想要使用的分辨率。

使用以下代码段获取屏幕大小。this表示当前"活动"上下文。

WindowManager windowManager = (WindowManager) this.getSystemService(Context.WINDOW_SERVICE);
Display display = windowManager.getDefaultDisplay();
DisplayMetrics displayMetrics = new DisplayMetrics();
display.getMetrics(displayMetrics);
int screenWidth = displayMetrics.widthPixels;
int screenHeight = displayMetrics.heightPixels;

你可以这样做

String pickedImagePath = "path/of/the/selected/file";
BitmapFactory.Options bitMapOption=new BitmapFactory.Options();
bitMapOption.inJustDecodeBounds=true;
BitmapFactory.decodeFile(pickedImagePath, bitMapOption);
int imageWidth=bitMapOption.outWidth;            
int imageHeight=bitMapOption.outHeight;

更新:

你可以使用显示指标来获得你的屏幕

DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
int width = metrics.widthPixels;
int height = metrics.heightPixels;

注意:你的屏幕分辨率和相机的分辨率可能不一样。请参阅此处的答案

最新更新