Java 如何在onActivityResult中了解相机意图后的照片分辨率

Java 如何在onActivityResult中了解相机意图后的照片分辨率,java,android,android-intent,android-camera,Java,Android,Android Intent,Android Camera,问候语 我已经做了一个相机的意图,传递文件参数,以获得完整大小的图像,我还有一个功能,以缩放图像,并设置在用户界面 然而,我想知道用户拍摄照片的分辨率。是否需要知道用户选择的分辨率 我想知道这是因为我的应用程序在高质量分辨率的劣质硬件设备中崩溃了。任何超过200万像素的照片都会使老式手机崩溃 我知道真正的解决方案是在整个应用程序中提高JAVA内存的性能。但这将是一个快速修复,我会看到其他稍后。此外,1.5米像素的照片就足够了。只是清单的一部分,不需要更高的质量 有没有办法知道相机的分辨率 谢谢

问候语

我已经做了一个相机的意图,传递文件参数,以获得完整大小的图像,我还有一个功能,以缩放图像,并设置在用户界面

然而,我想知道用户拍摄照片的分辨率。是否需要知道用户选择的分辨率

我想知道这是因为我的应用程序在高质量分辨率的劣质硬件设备中崩溃了。任何超过200万像素的照片都会使老式手机崩溃

我知道真正的解决方案是在整个应用程序中提高JAVA内存的性能。但这将是一个快速修复,我会看到其他稍后。此外,1.5米像素的照片就足够了。只是清单的一部分,不需要更高的质量

有没有办法知道相机的分辨率

谢谢

编辑: 谢谢大家的回答,但我必须承认,我忽略了我的解释。 我想简单地获得分辨率的另一个原因是,应用程序还将URI路径转换为内容路径,因此,如果照片的质量太高,手机无法处理,它就会崩溃。我只想在分辨率太高时警告用户,所以我怎么知道每部手机的每一个合适的分辨率,而不是它,我只是捕捉到错误“java.langOutOfMemory”,这将警告用户。像这样:

try {
 //here is my method to convert uri path to content
} catch (OutOfMemoryError outOfMemoryError) {
                            Toast toast = Toast.makeText(getApplicationContext(), "Please lower photo resolution", Toast.LENGTH_LONG);
                            toast.show();

                        }

您可以将结果强制转换为位图:

  Bitmap temp = BitmapFactory.decodeFile(data.getData().getPath());
然后你可以得到这样的分辨率:

  temp.getWidth();
  temp.getHeight();
或者你可以这样做:

  BitmapFactory.Options temp = new BitmapFactory.Options();
  temp.inJustDecodeBounds = true;
  BitmapFactory.decodeStream(context.getContentResolver().openInputStream(uri), null, temp);

  int width = temp.outWidth;
  int height = temp.outHeight;

使用
BitmapFactory
检查图像,使用。如果停止崩溃,您应该应用采样大小的Factory,但是如果我重新缩放图像,我还必须创建另一个文件以从uri路径转换到内容路径?