如果它是由Android设备屏幕的分辨率决定的,有没有办法通过程序获得该分辨率的值?
如果它是由安卓设备的屏幕的分辨率决定的
没有。
我如何获得将通过安卓相机拍摄的照片的默认大小(像素)
没有"照片的默认大小"。
如果您自己使用android.hardware.Camera
或android.hardware.camera2
API,则需要从可用的分辨率中指定所需的分辨率。
如果你使用的是ACTION_IMAGE_CAPTURE
,分辨率将部分取决于你是否通过EXTRA_OUTPUT
,但其他方面取决于相机应用程序。有数千种Android设备型号,附带数百种不同的预装相机应用程序,还有许多其他相机应用程序可以通过Play Store等分销渠道获得。他们将使用android.hardware.Camera
或android.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;
注意:你的屏幕分辨率和相机的分辨率可能不一样。请参阅此处的答案。