说到ACTION_IMAGE_CAPTURE
,大家肯定不陌生,如果我们只想简简单单拍个照片,然后在应用中使用,那它肯定是最快的方式。只需:
- 调起第三方相机应用,
- 让用户选择自己喜欢的相机拍照,
- 把结果返回给我们的应用即可。
三步即可使用第三方提供给我们的丰富功能。
当然ACTION_IMAGE_CAPTURE
也是有不少坑的:
- 有些相机会以竖屏的形式保存图片,有些相机会以横屏方式保存图片,设置一个EXIF标志说“嘿,图片查看器,展示的时候请给我旋转一下”。但是
BitmapFactory
会忽略此标志,因此Android应用程序经常直接忽略掉这个标志将这些图片作为横向图片加载。而且,这些行为居然都是合法的,因为ACTION_IMAGE_CAPTURE
没有明确指定用哪种方式保存。 - 有些相机会直接使用前置相机拍摄的图片,有些会反转一下图片,使图片看起来跟在相机预览中看到的图片保持一致。这些也都是合法的,因为
ACTION_IMAGE_CAPTURE
也没有明确指定该怎么做。 - 文档说默认情况下,相机应该返回“a small sized image”,但符合什么标准才是“a small sized image”它没说。我们知