Android-相机

news/2025/1/11 3:57:17/

开发学习记录

1、调用相机拍照

private fun takePhotoThumb() {Intent(MediaStore.ACTION_IMAGE_CAPTURE).also { takePictureIntent ->takePictureIntent.resolveActivity(packageManager)?.also {startActivityForResult(takePictureIntent, requestTakeThumbCode)}}}

接收返回的照片缩略图

override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {super.onActivityResult(requestCode, resultCode, data)if (resultCode == RESULT_OK) {when (requestCode) {requestTakeThumbCode -> {val bitmap = data?.extras?.get("data") as Bitmapimg.setImageBitmap(bitmap)}}}}

此方法获取到的是拍照的缩略图

2、相机拍照,并返回照片路径

val fileProvider="com.example.myapplication.fileProvider"
private fun takePhoto() {Intent(MediaStore.ACTION_IMAGE_CAPTURE).also { takePhotoIntent ->takePhotoIntent.resolveActivity(packageManager)?.also {val photoFile = createImgFile()photoFile?.also {val uriForFile = FileProvider.getUriForFile(this,fileProvider,it)takePhotoIntent.putExtra(MediaStore.EXTRA_OUTPUT, uriForFile)startActivityForResult(takePhotoIntent, requestTakePhoto)}}}}

fileProvider 名字需要跟后面清单文件中 authorities 的值相同

createImgFile()

lateinit var currentPhotoPath: Stringprivate fun createImgFile(): File {val timeStamp = SimpleDateFormat("yyyyMMdd_HHmmss").format(Date())val storeDir = getExternalFilesDir(Environment.DIRECTORY_PICTURES)return File.createTempFile("JPEG_${timeStamp}", ".jpg", storeDir).apply {currentPhotoPath = absolutePath}}

使用此方法可以获取拍摄的照片路径,但需要在清单文件中加入一些配置

<application...<providerandroid:name="androidx.core.content.FileProvider"android:authorities="com.example.myapplication.fileProvider"android:exported="false"android:grantUriPermissions="true"><meta-dataandroid:name="android.support.FILE_PROVIDER_PATHS"android:resource="@xml/file_paths"></meta-data></provider></application>

注意 :android:authorities="com.example.myapplication.fileProvider" 此处value 需要换成自己的

@xml/file_paths :在目录res 下创建 xml 文件夹 ,添加 file_paths.xml文件

<?xml version="1.0" encoding="utf-8"?>
<paths><external-files-pathname="my_images"path="." />
</paths>

留言跟我交流(* ̄︶ ̄)

参考文档 拍照  |  Android 开发者  |  Android Developers


http://www.ppmy.cn/news/380938.html

相关文章

android 三星调用拍照功能吗,详解三星GALAXY Camera超方便的拍照功能

1自动模式很省心 轻松拍摄不用愁 三星GALAXY Camera可以算是一款非常革命性的产品&#xff0c;将传统的小尺寸长焦机与高性能的4核心移动设备融合起来也算得上是史无前例的事情。当然了如果只是用史无前例来形容的话那么大家肯定会怀疑笔者是不是在吹牛皮&#xff0c;所以我们就…

三星是android吗,三星 Galaxy Camera(三星安卓相机)

三星 Galaxy Camera(三星安卓相机) 编辑 锁定 上传视频 三星GALAXY Camera 集成高性能的拍摄技术&#xff0c;搭载最新的 Android 4.1 果冻豆操作系统&#xff0c;支持无线网络连接功能&#xff0c;开创了终端产品新类型。 中文名 三星 Galaxy Camera(三星安卓相机) 型 号 G…

新一代相机传感器,三星Isocell HP3,更小像素更智能?

三星的Isocell HP3图像传感器比其前身具有更小的像素和更智能的自动对焦。 三星周四推出了用于智能手机相机的最新200MP图像传感器。 Isocell HP3包含2亿个0.56微米大小的像素&#xff0c;比去年推出的首款2000万像素图像传感器Isocell HP1中使用的0.64微米大小的像素小12%。 …

TypeScript 第一章

欢迎来到 TypeScript 学习&#xff01;本章将为您介绍 TypeScript 的基础知识。 TypeScript 是 JavaScript 的一个超集&#xff0c;它提供了静态类型检查、类、接口等特性&#xff0c;使得编写大型应用程序变得更加容易和可维护。TypeScript 编写的代码可以被编译成 JavaScript…

Flink TableAPI Aggregation And DataType

序言 这里整理下聚合的优化选项 以及 数据类型 Stream Aggregation SQL 是数据分析中使用最广泛的语言。Flink Table API 和 SQL 使用户能够以更少的时间和精力定义高效的流分析应用程序。此外&#xff0c;Flink Table API 和 SQL 是高效优化过的&#xff0c;它集成了许多查询…

企企通联合创始人兼总架构师杨华:剖析SRM顾问长期主义项目实践

近日&#xff0c;国产大飞机C919商业首飞成功引起广泛关注&#xff0c;此后&#xff0c;我们的出行选择中新增了一项“自己国家的大飞机”&#xff0c;给国人带来了更多的期待和自豪。 走难而正确的路&#xff0c;国产大飞机C919从项目立项到“一飞冲天”&#xff0c;花了十六年…

强化学习复现笔记(2)策略迭代

摘要&#xff1a; 上一节的压缩映射在实际迭代时可以分成两种方法&#xff0c;分别称作值迭代和策略迭代。本文用走迷宫的例子&#xff08;将1维迷宫扩展到2维&#xff09;讲这两种迭代。对应第一节参考链接[2]的前4章。 拆分压缩映射 上一节的压缩映射 v f ( v ) vf(v) vf(…

知识付费卖的并非知识,而是这个

哈喽&#xff0c;大家好&#xff0c;我是海哥&#xff0c;知识付费变现创业教练&#xff0c;教育公司培训总监&#xff0c;从事知识付费变现咨询10年&#xff0c;已助力3000人实现知识付费变现。 作为知识付费行业&#xff0c;外行人以为我们卖的是知识&#xff0c;包括行业新手…