Android相册选择图片、相机拍照上传功能实现(上)

这篇具有很好参考价值的文章主要介绍了Android相册选择图片、相机拍照上传功能实现(上)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

先上效果图

Android相册选择图片、相机拍照上传功能实现(上),程序员,数码相机,android

下面就来说一下相册选择图片和相机拍照的实现

一、相册选择图片


相册选择图片很简单,只需要通过 Intent 设置拉起就可以了

  1. Intent 拉起相册

/**

  • 打开相册
  • @param type 打开类型区分码(type是我用来区分回调的)
    /
    private void openGallery(int type) {
    Intent gallery = new Intent(Intent.ACTION_PICK);
    gallery.setDataAndType(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, "image/
    ");
    startActivityForResult(gallery, type);
    }
  1. onActivityResult 回调处理

@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
// 这里没有判断是否匹配,data为空
Glide.with(this).load(data.getData()).skipMemoryCache(true).diskCacheStrategy(DiskCacheStrategy.NONE).into(helpBinding.ivHelpImageFirst);
}

就这几行代码,就可以实现拉起相册选择图片,下面实现拍照

二、相机拍照图片


准备工作

因为我们要读取存储给拍照图片一个存储位置,所以我们需要先创建 FileProvider,为什么要用 FileProvider 而不直接用 File 是因为,从 Android N 7.0 之后,为了保证 App 间传输文件的安全性,不在允许直接用 file:// 传递,会 Crash 并抛出 FileUriExposedException,所以要临时授予权限通过 URI 访问。(Ps:可能理解不到位,深入了解可自行查询,这里简单说明下)

所以,在正式写相机拍照之前,我们先搞一下 FileProvider。

FileProvider

FileProvider 的使用也比较简单。分为三步。

  1. AndroidManifest.xml 中定义 FileProvider
  2. 创建 XML 文件说明临时授予权限的路径
  3. 使用 FileProvider

下面作简单说明

第一步:



分别说明下含义
name:FileProvider 继承自 ContentProvider,原来是 v4 下的包,现在都在 androidx 下了。
authorities:作用是用来标识,命名方式是 APP 包名 + provider 名的形式
exported:是否公开
grantUriPermissions:是否授予临时权限

然后是 meta-data,由于我们不能直接使用 File,而要使用 URI,那么就需要配置文件对真实存储位置做一个映射。这个 resource 就是我们的映射配置文件,也就是哪些路径要授权写在这文件中。

第二步:

在 res 目录下创建 xml 文件夹再创建 file_paths.xml 文件。位置:res/xml/file_paths.xml

<?xml version="1.0" encoding="utf-8"?>

因为我比较懒,就直接从根目录授权,用 . 表示。

第三步:

最后就在代码中使用了

// 直接通过该方法就可以得到URI
Uri uri = FileProvider.getUriForFile(this, “在AndroidManifest.xml中声明的标识”, file));

OK,简单了解 FileProvider 后,继续正题。

三、相机正文

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则近万的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

Android相册选择图片、相机拍照上传功能实现(上),程序员,数码相机,android

Android相册选择图片、相机拍照上传功能实现(上),程序员,数码相机,android

Android相册选择图片、相机拍照上传功能实现(上),程序员,数码相机,android

Android相册选择图片、相机拍照上传功能实现(上),程序员,数码相机,android

Android相册选择图片、相机拍照上传功能实现(上),程序员,数码相机,android

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:Android)

Android相册选择图片、相机拍照上传功能实现(上),程序员,数码相机,android

最后

如果你看到了这里,觉得文章写得不错就给个赞呗?如果你觉得那里值得改进的,请给我留言。一定会认真查询,修正不足。谢谢。

Android相册选择图片、相机拍照上传功能实现(上),程序员,数码相机,android

最后针对Android程序员,我这边给大家整理了一些资料,包括不限于高级UI、性能优化、移动架构师、NDK、混合式开发(ReactNative+Weex)微信小程序、Flutter等全方面的Android进阶实践技术;希望能帮助到大家,也节省大家在网上搜索资料的时间来学习,也可以分享动态给身边好友一起学习!

《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!文章来源地址https://www.toymoban.com/news/detail-853373.html

资料的时间来学习,也可以分享动态给身边好友一起学习!

《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!

到了这里,关于Android相册选择图片、相机拍照上传功能实现(上)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Android 拍照以及相册中选择(适配高版本)————上传头像并裁剪(一)

           在项目研发中,相信大家都遇到过给用户增加 头像照片 的需求。        随着 手机版本的不断更新 ,android 8、android 9、android 10、android 12、android 13、鸿蒙系统等等;遇到这个功能需求,大家肯定会想, “这还不好写? 之前就已经写过了。” 把老项目跑了一遍

    2024年02月01日
    浏览(40)
  • Android权限申请、相册选择图片、拍照、获取联系人、页面跳转

    目前第一版封装了:页面启动、页面启动回调、获取通讯录联系人、获取相册图片、拍照获取图片、单条权限申请、多条权限申请,且已适配到Android 13 导入 权限申请 权限申请支持单条权限和多条权限申请,支持强制拒绝后弹窗提示用户并引导区设置也开启权限 默认强制拒

    2024年02月16日
    浏览(37)
  • uniapp+uView 实现自定义水印相机,拍完照片给图片加水印,从相册选择图片加水印功能

    样式图如上所示 页面分为取景框和拍照完成后预览,本功能设计到,公共上传组件,相机也页面,获取定位地址,页面中如何用该上传组件 UI实现 取景界面分为上下两个部分,上部分为camera取景框组件,下部分为操作区域。 取景框组件上的关闭和水印,以及拍完照片后的略

    2024年04月14日
    浏览(81)
  • Android调用相机拍照,调用图库,上传图片

    Android调用相机进行拍照,调用图库获取图片,可进行裁剪,显示图片,并将图片上传

    2024年02月11日
    浏览(41)
  • Android webview上传图片(调起相册/相机上传)

    概述 默认情况 WebView 不支持input type=file,WebView 点击没有反应。 兼容 重写 webview 的 webchromeClient 中的 openFileChooser 方法。Android 版本的多样性,就理所当然的各种兼容。 具体代码实现 网上也有很多实现方式,这边记录一下自己用到的一种 webview 调用时,弹出本地弹框,选择(

    2023年04月21日
    浏览(30)
  • uniapp,小程序上传图片,调用相机,打开相册功能

    uniapp上传头像上传图片,上传评价等功能都可以使用这个方法 将接口替换和参数替换其他共用直接使用即可,需要弹窗就使用俩个参数,直接打开相册或者相机就只填一个参数

    2024年02月14日
    浏览(32)
  • uniapp实现小程序打开相册或拍照上传图片附赠兼容H5方法

    小程序上传图片,或者拍照上传图片,并附带兼容H5上传图片方法,压缩图片。 支持选择相册和拍照,可以使用uniapp提供的api,当然也可以自己去封装自己想要的样式,我这里直接是使用了uni的方法。 uni.chooseImage 配置 sourceType: [\\\'album\\\', \\\'camera\\\'] 压缩图片主要用canvas提供的api

    2024年02月15日
    浏览(31)
  • Android打开系统相机或从相册中选择图片并显示

    xml代码 展示  java代码 实机演示  

    2024年02月11日
    浏览(40)
  • Android 13 骁龙相机点击拍照流程分析(二)——点击拍照到存入相册

            本篇是在Android 13 骁龙相机点击拍照流程分析(一)——点击拍照到更新到左下角缩略图文章的基础上进行延申的,前面的预览、点击拍照的过程参考第一篇:Android 13 骁龙相机点击拍照流程分析(一)——点击拍照到更新到左下角缩略图-CSDN博客         从第一篇的

    2024年02月06日
    浏览(40)
  • 【鸿蒙应用ArkTS开发系列】- 选择图片、文件和拍照功能实现

    在使用App的时候,我们经常会在一些社交软件中聊天时发一些图片或者文件之类的多媒体文件,那在鸿蒙原生应用中,我们怎么开发这样的功能呢? 本文会给大家对这个功能点进行讲解,我们采用的是拉起系统组件来进行图片、文件的选择,拉起系统相机进行拍照的这样一种

    2024年02月04日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包