我想用标准系统服务拍照
Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(takePictureIntent, REQUEST_IMAGE_CAPTURE);
和AFTERWARDS我想给它一个自定义名称和目录或路径(在我拍摄相机活动的照片之后应该在另一个活动中发生)
问题是,如果我创建一个包含所有属性(名称,路径)的文件并将其赋予意图,我不能在拍摄照片后在活动中执行此操作,而是在打开之前需要确定其属性意图(拍照)。 (正如Google文章中所述:https://developer.android.com/training/camera/photobasics#TaskPath)
我应该只获取fullsize Bitmap然后打开其他活动,然后保存并确定其属性吗?
有没有办法按照文章中的建议去做,但不知怎的相反?(之后创建文件)
如果您有任何想法,请告诉我。
我告诉你任何帮助。 谢谢!答案 0 :(得分:1)
我想用标准系统服务拍照
您的代码正在启动数百个可能的相机应用程序中的任何一个。特定应用程序可能已由设备制造商预先安装,或者它可能是用户安装的应用程序。
问题是,如果我创建一个包含所有属性(名称,路径)的文件并将其赋予意图,我不能在拍摄照片后在活动中执行此操作,而是在打开之前需要确定其属性意图(拍照)。
正确。
我应该只获取fullsize Bitmap然后打开其他活动,然后保存并确定其属性吗?
没有办法让ACTION_IMAGE_CAPTURE
直接给你一个“fullsize Bitmap”。您可以获取缩略图 - 尺寸Bitmap
,也可以将完整尺寸的照片写入您选择的位置。
有没有办法按照文章中的建议去做,但不知怎的相反?(之后创建文件)
没有。但是,没有什么可以阻止您通过活动中的文件打开照片,然后修改该照片并将其写回。您可以覆盖原始文件,也可以写入新位置。
因此,举例来说,如果您担心自己不想让照片进入用户可访问的位置,直到您的活动完成,那么您可以将Uri
传递给ACTION_IMAGE_CAPTURE
指向getCacheDir()
中的私人位置,然后让您的活动将照片的最终版本写入external storage上的文件。