Android相机开发(一)之预览拍照查看图片基本功能的实现

Android 实现相机(CameraX)预览 CameraX 是一个 Jetpack 库,旨在帮助您更轻松地开发相机应用。对于新应用,我们建议从 CameraX 开始。它提供一致且易于使用的 API,适用于绝大多数 Android 设备,并向后兼容 Android 5.0(API 级别 21)。 阅读详情

前言


        接触Android开发有一段时间了。一开始时纯粹是出于自己的兴趣,空闲时写几个小软件自娱自乐。刚好暑假时老板布置的任务跟Android相关,所以这段时间又继续进行了Android的开发学习。现在的Android开发水平仅属于菜鸟级别,之所以写这系列博客,一来是对这段时间的学习做一些总结,二来是分享,希望能帮助到有需要的人。最近状态很差,干什么都不上劲,也希望能通过动手写这个博客来改变一下自己的状态,迎接后面的挑战。

        好了,言归正传。Android要实现拍照功能,有两种方法。一是直接利用Intent调用系统自带的相机进行拍照,这适用于不想自己DIY相机,而仅仅是拍照分享或者拍照后进行处理的场合,简单方便。而是利用Camera相关的API自己从头实现一个相机,这个好处是可以自定义相机的行为,能最大程度满足自己的开发需求。这篇文章主要是介绍怎么实现预览和拍照保存的功能,其实这些基本功能的实现在Android文档中给出了很详细的介绍->http://developer.android.com/guide/topics/media/camera.html。


正文


一、声明权限

为了让手机能够正常使用相机功能,必须在AndroidManifest.xml文件中声明所需的权限。

<uses-permission android:name="android.permission.CAMERA" />
另外,还需要加入写入存储卡的权限,否则无法保存图片。整个AndroidManifest.xml文件的内容如下:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.supercamera"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="17" />
    
    <uses-permission android:name="android.permission.CAMERA" />
    <uses-feature android:name="android.hardware.camera" />
    <uses-feature android:name="android.hardware.camera" android:required="false" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    
    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.example.supercamera.MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>
其中,<uses-feature android:name="android.hardware.camera" />的作用是表明该程序必须安装在支持相机功能的设备中,Google Play会阻止不支持相机的设备下载该程序。


二、检测并打开相机

        在打开相机之前,先利用

Android Camera开发实践(1)预览,vue总结来了 1.2打开Camera硬件 配置相机、存储权限 设置SurfaceCallback,回调中,启动预览。注意,surfaceChanged至少回调一次 SurfaceView cameraPreview = findViewById(R.id.camera_preview); cameraPreview.getHolder().addCallback(new PreviewSurfaceCallback()); private class PreviewSurfaceCallback implement 阅读详情

相关推荐

Android Camera2-预览、拍照、录像流程

重复模式(Repeating):指的是不断重复执行指定的 Capture 操作,当有其他模式的 Capture 提交时会暂停该模式,转而执行其他被模式的 Capture,当其他模式的 Capture 执行完毕后又会自动恢复继续执行该模式的 Capture,例如显示预览画面就是不断 Capture 获取每一帧画面。在 Camera2 上,你可以在规定的曝光时长范围内配置拍照的曝光时间,从而实现拍摄长曝光图片,你甚至可以延长每一帧预览画面的曝光时间让整个预览画面在暗环境下也能保证一定的亮度。

闲暇部落 7865

相机开发(聚焦、横竖屏拍照、照片存储、连续拍照等)

最近项目用到了相机拍照的功能,于是想着封装好一些通用性较好的相机调用,从百度和谷歌上查找出来的资料真的印证了“天下文章一大抄”的道理,而且它们实现的拍照功能大都存在缺陷,如聚焦问题、重复拍照问题、照片存储问题、横竖屏转换问题。一大堆的问题,而且程序的扩展性和可重用性实在不敢恭维,排版级其混乱。 最后无奈,打开API文档camera相机类,从最基础的学起,然后自己进行改进,从这里也告诉我们一个道理

7690

Android开发自定义相机,自定义拍照界面

1、目的 :开发时产品需求自己定义拍照界面,拍照处理。如下图:自定义一个拍照界面 可以看到,底部拍照按钮,和相册选择。整个界面和系统相机不一样。这时我们就要自己去开发定义自己的相机处理。 2、实现思路 写好自己需求的相机界面布局。拍照界面就相当于一个activity界面。然后调用系统API去实时获取硬件捕获到的图像用系统控件SurfaceView实时渲染出来。点击拍照,系统API...

P_XSecret的博客 9854

android 预览和拍照成像方向不一致,Android相机预览方向深入探究

原标题:Android相机预览方向深入探究今日快讯9月7日,北京市交通委召集各区管理部门和15家共享自行车企业负责人,听取共享自行车投放和管理的意见建议,研究决定并下发通知,暂停在本市新增投放共享自行车。摩拜单车和ofo小黄车表示对于北京市交通委提出的加强共享单车管理、维护市容市貌的举措表示积极拥护和全力支持。作者简介转眼来到了周五,祝大家周末愉快!本篇来自 IT小蔡的投稿,分享了 Android...

weixin_36481760的博客 2183

照相机预览、拍照以及适配问题的完美解决

前段时间在做face++相关的功能,对于照相机也是进行了一番研究,小有收获,解决了不少拍照预览图片模糊、部分机型黑屏等问题,目前已经保证了团队里面十多部安卓手机的完美适配。

shan286的专栏 9694

Android 使用Camera1实现相机预览、拍照、录像

本文介绍在Android中,如何使用Camera1 API实现相机预览、拍照和录制视频,以及提供可以接入使用的Camera1工具类

朱豪凯的博客 1万+

Android相机应用开发实战:预览与拍照功能实现

随着移动设备的普及和技术的不断进步,相机已成为智能手机不可或缺的功能之一。Android系统作为最大的移动操作系统之一,其相机功能的丰富性和高效性是吸引用户的重要因素。Android相机功能不仅仅局限于简单的拍照和录像,它还涉及到了图像处理、场景识别、图像稳定等多个高级功能。开发者通过使用Android提供的Camera API和Camera2 API,可以实现各种自定义的相机应用,满足不同用户的需求。

weixin_42627459的博客 1460

告别单调!3种方法给VS2019换上VSCode同款NightOwl主题(附字体优化技巧)

本文详细介绍了三种将VSCode热门NightOwl主题移植到VS2019的方法,包括扩展市场直装、官方主题库导入与增强以及手动调色实现像素级复刻。同时提供了字体优化与视觉增强技巧,帮助开发者打造更舒适的编码环境。

weixin_28836989的博客 210

零、HarmonyOS应用开发者基础学习总览

零、HarmonyOS应用开发者基础学习总览

weixin_45029825的博客 1445

保姆级教程:在瑞芯微RV1126B上部署轻量化YOLOv8,实现端侧实时目标检测

本文详细介绍了在瑞芯微RV1126B芯片上部署轻量化YOLOv8模型的完整流程,包括开发环境搭建、模型训练优化、量化转换及嵌入式部署。通过利用RV1126B的3TOPS NPU算力和AI-ISP特性,实现端侧实时目标检测,提升边缘AI应用的性能和效率。

weixin_30329623的博客 257

Python表白代码:“ 星光月夜烟花皆归你,我也归你”(满天烟花盛开、附番外玫瑰)

导语 "慢品人间烟火色 闲观人间岁月长" ———致自己​​​ ​ ???? 遇见我以后,我们的故事就开始了,愿你历经山河,仍觉得人间值得????。 ​ 星光月夜烟花皆归你,我也归你。关于烟花????大家都​知道多少?有多少表白故事情节都发生在烟 花下,想必木木子????不用说大家也知道叭~​​ 今天这则小短文就是关于烟花的故事!你准备好跟我一起进入烟花的世界了嘛? ​正文 “每一句文案,都有一个故事,你仔细听” ​ 1)环境安装???? 准备好:.

顾木子吖的博客 5万+

基于simulink的多能源系统协同与能源互联网的电网系统场景实例:虚拟电厂(VPP)中电网与储能集群的协同控制

本文详细介绍了使用Simulink构建虚拟电厂(VPP)与储能集群协同控制系统的完整建模过程。主要内容包括:1) VPP系统架构设计;2)分步骤建模过程,涵盖虚拟电厂系统创建、储能单元与集群建模、VPP控制器设计(核心)以及协同控制场景仿真;3)性能分析与典型应用场景。通过混合整数线性规划优化调度和智能指令分解策略,实现了VPP参与电力市场交易、电网调频调峰等功能,验证了系统在提升可再生能源消纳率(96%)、降低电网峰谷差(35%)等方面的优异性能。该建模方法为能源互联网中的分布式资源聚合与协同控制提供了实

xiaoheshang_123的博客 458

实测!Gemini+ChatGPT赋能学术写作:我的论文写作SOP(附提示词)

各位同仁好,我是七哥。一个在高校里从事人工智能相关领域研究,钻研用大模型AI实操的学术人。可以和七哥交流学术写作或Gemini、GPT、Claude等大模型学术实操相关问题,多多交流,相互成就,共同进步。为什么ChatGPT逻辑清晰却写不长?为什么Gemini能深入分析但废话连篇?这其实是两种模型架构的本质差异,GPT系列擅长指令跟随和语言精炼,而Gemini原生支持超长上下文,适合深度文本生成。两者在深度生成与精炼表达上形成了天然互补。我们可以将它们组合起来使用发挥他们各自的特长。

智能AI让学术科研更容易 513

Unity开发AR之Vuforia-MultiTarget笔记

在增强现实(AR)技术蓬勃发展的今天,越来越多的开发者开始探索如何将AR应用于各种场景中。Vuforia作为一个领先的AR开发平台,为开发者提供了强大的工具和功能,使得创建AR体验变得更加简单和直观。本文将为您介绍Vuforia的基本概念、特点,以及如何配置和使用MultiTarget功能,旨在帮助您更加深入地理解Vuforia SDK,并在您的项目中有效地应用。Vuforia是一个由PTC开发的增强现实SDK,它提供了丰富的功能,使团队能够在各种设备上创建互动的AR应用。

TxNet 1043

【总目录】AUTOSAR精进之路专栏介绍及内容目录持续更新...

本专栏系统讲解AUTOSAR汽车电子开发技术,包含Eth/OS/Can/Lin等协议栈、MCAL驱动、功能安全等核心模块。内容基于实际项目经验,从概念原理到工程配置、特殊需求实现及问题排查进行深入剖析。重点涵盖TC3xx芯片平台开发、多核OS、网络管理、存储协议栈等难点问题,提供100+篇原创技术文章。专栏采用付费模式,保证内容完整性和持续更新,并提供专业答疑服务。适合汽车电子工程师系统学习AUTOSAR开发技术。

qq_36056498的博客 6457

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

上一篇: VMware出现Insufficient permission to access file解决方法
FromHJ
博客等级 码龄16年 4粉丝 8原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值