0

如果它是由 Android 设备屏幕的分辨率决定的,有没有办法以编程方式获取该分辨率的值?

4

3 回答 3

2

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

不。

如何获取将通过 Android 相机拍摄的照片的默认大小(以像素为单位)

没有“照片的默认大小......”。

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

如果您使用ACTION_IMAGE_CAPTURE的是 ,分辨率将部分取决于您是否通过EXTRA_OUTPUT,否则取决于相机应用程序。有数千种 Android 设备型号,预装了数百种不同的相机应用程序,还有许多其他相机应用程序可通过 Play 商店等分销渠道获得。他们将使用android.hardware.Cameraandroid.hardware.camera2API,他们将通过他们想要的任何算法来选择他们想要使用的分辨率。

于 2016-07-23T17:27:08.810 回答
1

你可以这样做

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;

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

于 2016-07-23T16:54:17.777 回答
1

使用以下代码段获取屏幕大小。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;
于 2016-07-23T17:12:22.177 回答