java拍摄照片,然后命名
我想用standart系统服务拍照
Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(takePictureIntent, REQUEST_IMAGE_CAPTURE);
之后,我想给它一个自定义名称和目录或路径(在我用相机活动拍照后,应该在另一个活动中发生)
问题是,如果我创建了一个包含所有属性(名称、路径)的文件,并将其交给了intent,那么在拍摄完照片后,我无法在活动中执行此操作,而是需要在打开intent(拍摄照片)之前确定其属性。 (正如谷歌文章所建议的:https://developer.安卓.com/training/camera/photobasics#TaskPath)
我是否应该获取完整大小的位图,然后打开其他活动,然后保存它并确定其属性
有没有一种方法可以做到这一点,就像文章中建议的那样,但却有另一种方法呢?(以后创建文件)
如果你有任何想法,请告诉我
我接受任何帮助。 谢谢大家!
# 1 楼答案
你的代码正在启动数百个可能的摄像头应用中的任意一个。特定的应用程序可能是由设备制造商预装的,也可能是用户安装的应用程序
对
没有办法让
ACTION_IMAGE_CAPTURE
直接给你一个“全尺寸位图”。你可以得到一张缩略图大小的Bitmap
,或者让它在你选择的位置上写一张全尺寸的照片没有。但是,没有什么能阻止你通过活动中的文件打开照片,然后修改照片并将其写出来。您可以覆盖原始文件,也可以写入到某个新位置
因此,例如,如果您担心在您的活动完成之前,您不希望照片位于用户可访问的位置,那么您可以将指向
getCacheDir()
中私有位置的Uri
传递给ACTION_IMAGE_CAPTURE
,然后让您的活动将照片的最终版本写入external storage上的文件