android调用相册和摄像头,Android8.3调用摄像头和相册

本文介绍了在Android应用中调用摄像头拍照和从相册选取照片的实现过程。包括如何创建Intent,处理不同Android版本的Uri,以及在AndroidManifest.xml中注册内容提供器和权限声明。在拍照功能中,使用File对象存储照片,并在拍照后通过BitmapFactory解析显示在ImageView上。从相册选择照片时,需动态申请读取SD卡权限,并根据系统版本不同使用相应的方法处理Uri获取图片路径。
摘要由CSDN通过智能技术生成

我们平时在使用QQ或微信的时候经常要和别人分享图片,这些图片可以是用手机摄像头拍的,也可以是从相册中选取的。类似这样的功能实在是太常见了,几乎在每个应用程序中都会有,那么本节我们就学习一下调用摄像头和相册方面的知识。

8.3.1    调用摄像头拍照

先来看看摄像头方面的知识,现在很多的应用都会要求用户上传一张图片来作为头像,这时摄像头拍张照是最简单快捷的。下面就让我们通过一个例子来学习一下如何才能在应用程序里调用手机的摄像头进行拍照。

新建一个CameraAlbumTest项目,然后修改activity_main.xml中的代码,如下所示:

b364e99ac42b?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

可以看到,布局文件中只有两个控件一个Button和一个ImageView。BUtton适用于打开摄像头进行拍照的,而ImageView则是用于将拍到的图片显示出来。

然后开始编写调用摄像头的具体逻辑,修改mainActivity中的代码,如下所示:

b364e99ac42b?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

b364e99ac42b?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

b364e99ac42b?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

上述代码稍微有点复杂,我们来仔细分析一下。在MainActivity中要做的第一件事自然是分别获取到Button和ImageView的实例,并给Button注册上点击事件,然后在Button的点击事件里开始处理调用摄像头的逻辑,我们重点看一下这部代码。

首先这里创建了一个File,对象,用于存放摄像头拍下的图片,这里我们把图片命名为output_image.jpg,并将它存放在手机SD卡的应用关联缓存目录下。什么叫做应用关联缓存目录啦?就是指SD卡中专门存放当前应用缓存数据的位置,调用getExternalCacheDir()方法可以得到这个目录,具体的路径是/sdcard/Android/data//cache。name为什么要使用应用关联目录存放图片啦?因为从Android6.0系统开始,读写SD卡被列为了危险权限,如果将图片存放在SD卡的任何其他目录&#

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值