我试图在应用程序上创建一个摄像头选择器功能,我面临的摄像头图片的一些方法是不赞成的,所以我试图解决的代码,而不是使用任何去擦洗的方法。清单上的第一个声明权限
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
之后创建一个摄影机意图:
private var imageStr:Uri?=null
val values = ContentValues()
values.put(Media.TITLE, "New Picture")
values.put(Media.DESCRIPTION, "From the Camera")
imageStr = requireActivity().contentResolver.insert(EXTERNAL_CONTENT_URI, values)
// camera intent
val intent = Intent(ACTION_IMAGE_CAPTURE)
intent.putExtra(MediaStore.EXTRA_OUTPUT, imageStr)
startForCameraResult.launch(intent)
然后我们得到startforcameraresult的值:
private val startForCameraResult = registerForActivityResult(StartActivityForResult()) {
if (it.resultCode == RESULT_OK) {
profileImage.setImageURI(imageStr)
}
}
这是代码,问题是我总是得到imagestr为空。请告诉我处理这个问题的正确方向。谢谢
2条答案
按热度按时间vecaoik11#
在OnActivityResult中,您将得到如下意图:将其转换为位图
现在在图像上设置位图:
更新:
在onactivityresult()中
} }
xjreopfe2#
如果您正在使用
targetSdkVersion 29
&compileSdkVersion 29
你需要设置android:requestLegacyExternalStorage="true"
在androidmanifest.xml文件的应用程序标记中。