2

我编写了一个简单的应用程序,可以打开相机并提供保存任何捕获图像的路径。

代码基本上是这样的:

File file = new File( Environment.getExternalStorage() + "myimages/",
"my_image.jpg" );

Uri outputUri = Uri.fromFile( file );

Intent intent = new
Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE );
Intent.putExtra( MediaStore.EXTRA_OUTPUT, outputUri );

这在我的 Droid 上完美运行。图像始终以 2592x1936 保存。但是,在 Milestone 上进行测试时,图像以小得多的尺寸保存,例如 320x240 和 1280 x 1900。使用 adb logcat,我可以看到图像尺寸是在拍摄照片后立即设置的。

似乎里程碑上有一个默认设置导致了这种行为。

任何帮助将不胜感激。

谢谢,~杰里米

4

1 回答 1

1

每部手机都有自己的制造商编写的相机应用程序。每个相机应用程序都决定调整和/或压缩拍摄的任何图像的大小。如果您在更多手机上进行测试,您可能会发现您获得了各种不同的图像尺寸和质量。只要您使用意图,就取决于用户选择处理该意图的任何 Activity(无论如何,它总是可能与默认的相机应用程序不同)来决定如何处理它。

如果要强制执行特定的图像大小或质量,则需要编写自己的相机活动。请记住,不同的手机将具有不同的硬件,无论如何都会以各种不同的分辨率拍摄图像。您应该能够获得优于 320x240 的分辨率,但由于硬件不同,您将无法在所有手机上获得一致的尺寸。

于 2011-12-13T19:27:49.463 回答