实现打开Android系统相册、照相机并实现照相,录像功能。

android 防止截屏录屏 在Avitivy里面增加 防止录制屏幕测试 getWindow().setFlags(WindowManager.LayoutParams.FLAG_SECURE, WindowManager.LayoutParams.FLAG_SECURE); 阅读详情

通过本篇博客,你将学到以下知识点:
1.学会如何打开Android系统中相册的图片,视频,并使用这些图片,视频。
2.学会如何打Android开照相机进行照相,录像,并使用这样图片和视频。
下面我将展示两种方法来实现这些需求,注意:以下代码要用真机测试才行。
效果展示先:

这里写图片描述

一. 第一种方法:
①.想顺利的打开Android手机中的相册和照相机,首先我们要在清单中注册一些权限:

 <!--使用相机硬件的权限-->
    <uses-permission android:name="android.permission.CAMERA"/>
    <!--录音的权限-->
    <uses-permission android:name="android.permission.RECORD_AUDIO"/>
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
    <!--过滤不支持相机的设备-->
    <uses-feature android:name="android.hardware.Camera"/>

②.MainActivity的代码:

/**
 * 通过相机拍照返回的Bitmap有两种方式:
 * 1.不传入MediaStore.EXTRA_OUTPUT时,直接由data返回一个缩略图
 * 2.当传入MediaStore.EXTRA_OUTPUT时,可以通过设置的图片保存路径来获取完整图片
 */
public class MainActivity extends AppCompatActivity {
   
   

    private ImageView iv;

    private VideoView videoView;

    private final static int FLAG_REQUEST_SYSTEM_IMAGE = 0;

    private final static int FLAG_REQUEST_CAMERA_IMAGE = 1;

    private final static int FLAG_REQUEST_CAMERA_VIDEO = 2;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        iv = (ImageView) findViewById(R.id.iv);
        videoView = (VideoView) findViewById(R.id.video);
    }

    public void doclick(View view) {
        switch (view.getId()) {
            case R.id.btn_pick_imager:
                // TODO 选取系统相册图片
                doPickImageFromSystem();
                break;
            case R.id.btn_open_pick_imager:
                // TODO 打开相机拍照
                doOpenCameraForImage();
                break;
            case R.id.btn_open_pick_video:
                // TODO 打开相机录像
                doOpenCameraForVideo();
                break;
        }
    }

    private void doPickImageFromSystem() {
        /**
         * 参数一:打开系统相册的ACTION
         * 参数二:返回数据的方式(从系统相册的数据库获取)
         */
        Intent intent = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
        startActivityForResult(intent, FLAG_REQUEST_SYSTEM_IMAGE);
    }

    private void doOpenCameraForImage() {
        Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
        //todo 仅当设置了MediaStore.EXTRA_OUTPUT参数时,系统将不再返回缩略图,而是会被完整保存以下路径
        intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(new File("/sdcard/test.jpg")));

        startActivityForResult(intent,FLAG_REQUEST_CAMERA_IMAGE);
    }

    private void
Android10.0 去掉录屏权限弹框,默认给录屏权限 在10.0的系统rom产品定制化开发中,在对系统录屏功能这块也是很重要的,默认在调用MediaProjectionManager的 录屏接口时,会弹窗录屏弹窗需要系统手动授予录屏权限,然后才可以录屏,接下来就来去掉录屏弹窗授权功能, 然后直接录屏 阅读详情

相关推荐

Qt for Android 调用系统摄像头和相册

在安卓上面要使用换头像功能,就要涉及到调用系统摄像头实时拍摄或者打开系统相册来获取照片,一般前面是我使用jni,直接再qt上面写:使用上面的方法进行拍照,也会正常使用,但是在显示图片比较多的情况下调用该方法,一般就会导致APP在后台死掉或重启,很莫名其妙。所以后来我也就放弃了这种写法,改为原生的写法。下面贴出我原生java的写法:打开系统照相机方法:首先贴出包名,免得使用会导致包名找不到,以前我就...

波风水门 6204

安卓 android 原生人脸识别Camera和Camera2的代码示例demo

android原生人脸识别demo camera2

R | 提取文件夹内栅格数据的最小值、最大值、标准差和平均值

各位同学好,我们长需要用长时间序列栅格数据的平均值做变量的时间变化分析,用代码能够帮助我们省下很多时间。

qq_48539301的博客 449

DAC8568 Controller

DAC8568 ControllerDAC8568 简介串行接口三级目录 DAC8568 简介 PIN Description Name Description LDAC‾\overline{LDAC}LDAC load DACs SYNC‾\overline{SYNC}SYNC 低电平有效,电平触发控制, 该输入为输入数据的帧同步信号. 当SYNC为低,使能DAC内输入移位寄存器,并在随后的所有时钟沿采样数据。 在第32个时钟之后,DAC更新输出。 若不到32个时钟SYNC被置高(即

u010170039的博客 5129

海思ISP调优实战:从实验室到真实场景的IPC相机图像质量优化指南

本文深入探讨海思ISP调优在IPC相机图像质量优化中的实战应用,从实验室标定到真实场景部署的全链路调优方法。重点解决光照动态范围、色温变化和噪声特性等核心问题,提供AE权重表配置、CCM标定、3DNR时域滤波等关键技术方案,帮助实现从理论到实践的图像质量提升。

s3t4u的博客 750

MTK平台高效部署Qwen2.5大模型:从转换到推理全流程解析

本文详细解析了在联发科(MTK)NeuroPilot平台上高效部署Qwen2.5大模型的全流程。内容涵盖从环境搭建、模型转换、量化优化到编译部署与上机推理的完整步骤,重点分享了模型转换与模型运行的关键实践与避坑指南,旨在帮助开发者将大语言模型成功集成至移动及边缘设备。

zeta9的博客 376

超详细Matlab R2021a免费安装教程(附安装包)

Matlab是一种高级技术计算语言和交互式环境,用于算法开发、数据可视化和数值计算。它集成了数学、工程和科学计算的丰富函数库,提供了强大的数据分析和绘图工具。Matlab还支持并行计算和大规模数据处理,适用于各种领域,如信号处理、图像处理、控制系统、机器学习等。

waicsdn_haha的博客 1万+

你不必懂AI,但必须会用AI:写给所有焦虑中的职场人

AI时代不必焦虑学技术,关键在于用AI解决实际问题。文章指出,99%的人只需成为AI使用者而非建造者,核心竞争力在于结合业务痛点运用AI工具提升效率。与其盲目学习工具,不如梳理工作流程,识别可优化环节,让AI赋能重复性、标准化任务。行业经验与AI工具的结合才是真正的职场护城河。建议从具体工作场景出发,寻找匹配的AI解决方案,迈出应用第一步。

hundred98的博客 715

AI智算-K8s+vLLM & Ray:DeepSeek-r1 671B 满血版分布式推理部署实践

自从上次发布 【AI-智算】K8s+SGLang实战:DeepSeek-r1:671b满血版多机多卡私有化部署全攻略] 文章后,本次将演示另一个主流推理引擎工具——vLLM,结合K8s、LWS、Ray、Volcano等技术栈,部署DeepSeek-r1 671b 满血版分布式推理集群,并对比其与SGLang推理引擎的性能表现。

Kason_iWiki 1823

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

上一篇: 当ListView遇上RecyclerView, ListView将甘拜下风
下一篇: Activity七大生命周期详解
Allen-华
博客等级 码龄11年 10粉丝 33原创
评论 6
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值