这期内容当中小编将会给大家带来有关Android应用中利用系统相机进行拍照的流程是什么,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。
调用系统相机步骤
这里我通过一个简单的例子来讲这个内容。
我自己写了一个演示,布局很简单:
& lt;按钮 android: id=癅 + id/button" android: layout_width=皐rap_content" android: layout_height=皐rap_content" android: layout_marginTop=? dp" android:文本=皃hone" 应用:layout_constraintEnd_toEndOf=皃arent" 应用:layout_constraintHorizontal_bias=?.281”; 应用:layout_constraintStart_toStartOf=皃arent" 应用:layout_constraintTop_toTopOf=皃arent"/比; & lt; ImageView android: id=癅 + id/imageView" android: layout_width=皐rap_content" android: layout_height=皐rap_content" android: layout_marginTop=?9 dp" 应用:layout_constraintEnd_toEndOf=皃arent" 应用:layout_constraintStart_toStartOf=皃arent" 应用:layout_constraintTop_toBottomOf=癅 + id/button" 应用:srcCompat=癅mipmap/ic_launcher_round"/在
就是一个按钮点击弹起相机,然后一个imageView显示拍到的照片。
接下来我想一下调用的整个过程我们需要做什么:
首先弹起相机肯定要跳到相机这个应用,那么就必须通过隐性启动相机的活动。
然后当我们返回应用的时候,还要将照片显示,所以这里就要用到startActivityForResult这个方法。
其次,我们拍照之后肯定要进行储存的,那么就涉及到文件的操作。
涉及到内存的操作就肯定要和权限打交道,所有还有权限相关的内容。
最后还有一个问题就是,相机拍完照是要储存照片的,所以我们要给他一个地址uri,但是可不可以直接把地址当成参数发过去呢?这里就要用到特殊的内容提供器FileProvider。
上面就是调用相机要用到的内容,虽然用的都很浅,但是都会涉及到。接下来看看具体怎么实现。看看活动中的onCreate的代码:
私有Uri imageUri; 私人ImageView ImageView; @Override 保护空白> @Override 保护空白> & lt;提供者 android: name=癮ndroid.support.v4.content.FileProvider" android:当局=癶uan" android:出口=癴alse" android: grantUriPermissions=皌rue"比; & lt;元数据 android: name=癮ndroid.support.FILE_PROVIDER_PATHS" android:资源=癅xml/file_paths"/比; & lt;/provider>
这里的当局参数必须和前面的getUriForFile方法的第二个参数保持一致,同个内容提供器的当局肯定要一样啦.grantUriPermissions参数一定要是真的,这个的大概意思就是给他的所有元素授权可以被访问,在FileProvider中这个参数必须是真实的(这也是为什么在4.4一下版本的安卓无法使用的原因之一,有兴趣可以去了解一下)出口这个参数表示可不可以给其他的应用共享,这里要设置为假。你们;元数据这个是配置我们可以访问的文件路径,@xml/file_paths这个就是表示什么文件可以被访问,当然要建一个这个文件。看代码:
& lt;及# 63;xml version=?.0”;编码=皍tf-8", # 63;比; & lt;路径xmlns: android=癶ttp://schemas.android.com/apk/res/android"比; & lt; external-path name=癿y_image" 路径=??比; & lt;/paths>
& lt; external-path这个就是表示可以被访问的路径,名字是后面映射用到的,可以自己随便起,我这里用一横杆表示整个目录可以被访问。
上述就是小编为大家分享的Android应用中利用系统相机进行拍照的流程是什么了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注行业资讯频道。