Android (安卓)摄像头捕获不保存,可以';t加载图像的位图
我正在尝试编写代码,启动摄像头应用程序,保存图像,然后显示捕获图像的位图 这是相关代码,改编自: 我还设置了以下权限:Android (安卓)摄像头捕获不保存,可以';t加载图像的位图,android,image,android-bitmap,android-fileprovider,Android,Image,Android Bitmap,Android Fileprovider,我正在尝试编写代码,启动摄像头应用程序,保存图像,然后显示捕获图像的位图 这是相关代码,改编自: 我还设置了以下权限: <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 不知道这里发生了什么。请帮忙 B
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
不知道这里发生了什么。请帮忙
Bitmap takenImage = BitmapFactory.decodeFile(takenPhotoUri.getPath());
这是行不通的。Uri
不是文件
将getPhotoFileUri()
重构为两种方法:
- 生成您的
文件的
getPhotoFile()
获取该getPhotoFileUri()
文件的
FileProvider
Uri
然后,使用图像加载库(Glide、Picasso等)从
getPhotoFile()
返回的文件填充ImageView
。这不仅可以为您处理所有的BitmapFactory
内容,还可以在后台线程上完成这项工作,这样您就不会像在当前代码中那样冻结UI。非常感谢您的帮助!:)
<provider
android:name="android.support.v4.content.FileProvider"
android:authorities="com.kfode.schoolapp.fileprovider"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/file_paths"
/>
</provider>
<paths xmlns:android="http://schemas.android.com/apk/res/android">
<external-files-path name="images"
path="Pictures"/>
D/getPhotoFileUri: content://com.kfode.schoolapp.fileprovider/images/School_App/note4.jpg
D/NotesDetail: content://com.kfode.schoolapp.fileprovider/images/School_App/note4.jpg
E/BitmapFactory: Unable to decode stream: java.io.FileNotFoundException: /images/School_App/note4.jpg: open failed: ENOENT (No such file or directory)
Bitmap takenImage = BitmapFactory.decodeFile(takenPhotoUri.getPath());