Android拍照

安卓开发中启动相机并拍照保存图片 阅读详情

从本地相册获取照片

                                Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
                                intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(tempFile));
                                intent.putExtra(MediaStore.EXTRA_SCREEN_ORIENTATION,
                                        ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
                                startActivityForResult(intent, RESULT_CAPTURE);

拍照完成返回获取结果

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent intent) {
        if (requestCode == RESULT_CAPTURE) {
            if (resultCode == RESULT_OK) {
                ImageUtils.fixImageRotate(this, tempFile, tempFile, new ImageUtils.RotateImage() {
                    @Override
                    public void finishRotate(File image) {
                    	Uri destImageUri = Uri.fromFile(tempFile);
                		cropImageUri(Uri.fromFile(image), destImageUri, cropImageWidth, cropImageHeight, CROP_PHOTO);
                    }
                });
            }
        }
}

启动图片剪裁

 /**
     * 启动图片裁剪
     */
    public void cropImageUri(Uri srcUri, Uri destUri, int outputX, int outputY, int requestCode) {
		Intent intent = new Intent("com.android.camera.action.CROP");
		intent.setDataAndType(srcUri, "image/*");
		intent.putExtra("crop", "true");
		intent.putExtra("aspectX", 1);
		intent.putExtra("aspectY", 1);
		intent.putExtra("outputX", outputX);
		intent.putExtra("outputY", outputY);
		intent.putExtra("scale", true);
		intent.putExtra("scaleUpIfNeeded", true);// 去黑边
		intent.putExtra(MediaStore.EXTRA_OUTPUT, destUri);
		intent.putExtra(MediaStore.EXTRA_SCREEN_ORIENTATION, ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
		if (imageFileType.endsWith("jpg")){
			intent.putExtra("outputFormat", Bitmap.CompressFormat.JPEG.toString());
		}else{
			intent.putExtra("outputFormat", Bitmap.CompressFormat.PNG.toString());
		}
		intent.putExtra("noFaceDetection", true); // no face detection
		startActivityForResult(intent, requestCode);
	}

涉及到Bitmap转换

/** 
     * 将 路径转换为 bitmap 
     * 根据图片路径 处理后返回bitmap 
     * 相对于直接使用 BitmapFactory.decodeFile(filePath); 有效防止OOM 
     * @param filePath  文件路径 
     * @param zoomLevel 缩放级别(建议是2的整倍数) 
     * @return 
     */  
    public static Bitmap pathToBitmap(String filePath,int zoomLevel) {  
        try {  
            InputStream is = new FileInputStream(filePath);  
            return inputstremToBitmap(is,zoomLevel);  
        } catch (FileNotFoundException e) {  
            e.printStackTrace();  
            return null;  
        }  
    }
/** 
     * 将 inputStrem 转换为bitmap 
     * 
     * @param is 文件字节流 
     * @param zoomLevel 缩放级别(建议为2的整倍数) 
     * @return 
     */  
    public static Bitmap inputstremToBitmap(InputStream is,int zoomLevel) {  
        try {  
            BitmapFactory.Options opts = new BitmapFactory.Options();  
            // 内存中申请100k缓存空间  
            opts.inTempStorage = new byte[100 * 1024];  
            opts.inPreferredConfig = Bitmap.Config.RGB_565;  
            //设置图片可以被回收,创建Bitmap用于存储Pixel的内存空间在系统内存不足时可以被回收  
            opts.inPurgeable = true;  
            //设置位图缩放比例 width,hight设为原来的四分一(该参数请使用2的整数倍)  
            // 这也减小了位图占用的内存大小;例如,一张分辨率为2048*1536px的图像使用inSampleSize值为4的设置来解码,产生的Bitmap大小约为512*384px。相较于完整图片占用12M的内存,这种方式只需0.75M内存(假设Bitmap配置为ARGB_8888)。  
            opts.inSampleSize = zoomLevel;  
            //设置解码位图的尺寸信息  
            opts.inInputShareable = true;  
            //解码位图  
            Bitmap bitmap = BitmapFactory.decodeStream(is, null, opts);  
            // 返回所需bitmap  
            return bitmap;  
        } catch (Exception e) {  
            e.printStackTrace();  
            return null;  
        }  
    } 

通过AS的Monitors可以直观的看到APP在拍照前后内存波动





















[Unity][Android]安卓手机设备拍照 SimpleActivity.java onClick CustomHelper onClick 阅读详情

相关推荐

安卓拍照、裁切、选取图片实践

安卓拍照、裁切、选取图片实践:适配Android 10、11储存

silencefly的博客 1623

android 拍照横向,android强制相机以横向模式拍照

我想强制默认的Android相机仅以横向模式拍照.我试过以下:Intent cameraIntent=new Intent("android.media.action.IMAGE_CAPTURE");File photo = new File(Environment.getExternalStorageDirectory().getAbsolutePath(), "Pic.jpg");camera...

weixin_28809647的博客 923

安卓定时拍照应用开发完全指南

简介:安卓定时拍照功能结合了摄影和编程技术,常用于记录连续变化的场景。开发者创建此功能,记录植物生长,利用华为P9p测试。本文将探讨实现该功能所需的关键知识点,包括安卓编程基础、权限管理、相机API、定时任务、文件操作、用户界面、通知与服务、设备兼容性、图片处理、数据持久化和异常处理等。

weixin_42181686的博客 1065

Android调用系统照相机和摄像机

调用系统照相机。 private void callPhone() { //获得文件 File _file = new File(StorageUtils.getCacheDirectory(this), "temp.jpg"); //判断文件是否为null if (_file != null) { //获得图片URI Uri

埋头苦干程序猿 3139

Java 开发 修改【冒险岛 079 私服】完整学习流程

第 1-2 天:环境搭建 + 运行原版 079 服务端,能正常登录游戏;第 3-4 天:纯配置文件修改,掌握倍率、属性、怪物、道具的修改,改出第一个「百倍经验私服」;第 5-10 天:Java 代码基础修改,掌握 Player/Skill/Monster 核心类的修改,实现技能无冷却、一刀秒怪、升级满属性;第 11-20 天:Java 代码进阶修改,掌握业务逻辑修改,实现死亡不掉经验、自动捡物、装备强化无失败;第 21-30 天。

萧曳丶 3901

DataWorks数据安全治理最佳实践

DataWorks基于数据安全治理的常见思路,针对资产梳理、技术体系建设和运营体系建设,提供了一系列数据安全产品能力,您可通过“基础防护建设、数据安全防护措施及策略增强建设、数据安全持续运营”三个阶段在DataWorks上落地数据安全治理项目。参考本文启动数据安全治理项目前,建议您先了解DataWorks数据安全产品相关能力了解DataWorks数据安全产品能力后,您可参考如下三个阶段在DataWorks上落地数据安全治理项目。

soso1968的博客 1438

使用MediaStore.ACTION_IMAGE_CAPTURE,拍照到指定目录

示例代码如下: Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); if (intent.resolveActivity(getPackageManager()) != null) { ContentValues contentValues = new ContentValues(2); String filePath = CommonUtils.getOutputMediaFile().getP

chuyouyinghe的专栏 1792

PET,CT图像融合笔记

PET-CT怎样进行图像融合?图像融合实现CT与PET图像的融合 OpenCV实现(附实验结果)

chenran187906的博客 8414

Android学习之调用系统相机实现拍照功能

一、今天,来介绍如何调用系统自带的相机进行拍照,主要有以下2种实现的方式: 1、Camera应用程序包含了一个意图过滤器,即intent filter,它使得开发人员能够提供与Camera应用程序同等的图像捕获能力,因此我们可以在应用程序的AndroidManifest.xml清单文件中新建一个意图过滤器,这样就会告诉Android系统,这个包含此意图过滤器的活动将根据指令执行指定的任务,创建意图

茕夜 1万+

电源完整性之Cadence Sigrity Power DC_IR_Drop仿真

之前和大家分享过电源完整性之仿真设计原理链接: link.今天接着上一篇文章总结一下电源直流压降的的仿真操作流程及一些simulation中的设置参数,用到的时候Cadence Sigrity 中的Power DC组件,下面开始享受仿真的快乐吧: 1.仿真模式选择与文件导入 选择Cadence Sigrity下的Power DC组件,然后先择licence,最后就可以打开我们之前转化好的.SPD文件。操作如下图: 2.设置层叠信息和过孔焊盘参数 层叠信息:每层的介质厚度、材料、介电常数、介质损耗角等,如

刘小同学的博客 1万+

V-REP(Cooprliesim EDU)自学笔记 实现UR5机械臂末端按轨迹移动

V-REP(Cooprliesim EDU)自学笔记 实现UR5机械臂末端按轨迹移动

xu_white的博客 7583

Android相机实况模式,安卓实况拍照怎么用

大家好,我是时间财富网智能客服时间君,上述问题将由我为大家进行解答。以小米手机为例,安卓实况拍照的使用方法:1、进入相机,直接按快门进行拍照。或者点击想要拍摄的地方先进行对焦然后再次点击对焦的地方进行快门操作。2、直接按音量键进行快门操作。具体设置方法:进入相机设置—音量键功能—选择快门。3、进入相机页面,左上角有闪光灯设置,可以在这里对是否开启闪光灯进行设置。4、右上角有个HDR也就是“高动态范...

weixin_29205373的博客 1万+

32位快速加法器设计

32位快速加法器设计

好好学习,天天向上 3290

android 树莓派 图片,安卓树莓派的拍照

说到树莓派,不能忽略其小小的拍照功能,在谷歌官方的Demo中,有一个项目涉及到了拍照,具体实现是一个门铃的功能:当“门铃”按下时,在门上方的“摄像头”会抓拍下站在门口的的人,并通过谷歌的云平台及其数据库发送到与树莓派相关联的安卓手机。从而完成整个步骤。申请谷歌云端平台可以免费试用,但试用之前,需要填写一个有效的付款方式,国内的话需要VISA,或者其他外币卡付款方式谷歌云平台有条件的小伙伴,可以尝试...

weixin_30234101的博客 267

LSTM+Transformer混合模型时间序列预测实战教学

LSTM+Transformer混合模型时间序列预测实战教学 毕业设计

8220

深入剖析 YOLOv11 中的 C2PSA 注意力机制

YOLOv11中的C2PSA注意力机制在目标检测领域取得突破性进展。该机制通过跨通道分组交互和轻量级位置编码,在仅增加0.6%计算量的情况下提升mAP 1.5-2.3个百分点。C2PSA创新性地结合局部跨通道交互、位置编码和双分支并行调制,采用纯卷积实现自注意力,避免传统注意力机制的高计算复杂度。实验表明,C2PSA在COCO数据集上以微小计算代价显著提升检测性能,特别是对小目标和遮挡目标效果突出。该模块可直接嵌入YOLO架构,为轻量级目标检测提供新的优化方向。

shrgegrb的博客 3400

Android安卓拍照点击保存后无法返回

Android安卓拍照点击保存后无法返回 Android安卓调用系统拍照,点击拍照,弹出保存按钮,点击保存保存按钮。   有的机器就直接返回到了上一页。但是有的 4.1.1机器,依然在当前界面,继续拍照 很可能是  屏幕横向纵向切换的问题。 切换后。上一页 destory了。然后重新oncreate。然后又进入拍照了 在activity的xml

icewst的专栏 3539

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

OCR--苹果ios安卓android身份证拍照扫描识别sdk

一、ios安卓android身份证拍照扫描识别sdk应用背景   这些年,随着移动互联网的的发展,越来越多的企业都推出了自己的移动APP,这些APP多数都涉及到个人身份证信息的输入认证(即实名认证),如果手动去输入身份证号码和姓名,速度非常慢,且用户体验非常差。为了提高在移动终端上输入身份证信息的速度和准确性,我们开发出ios安卓android身份证拍照扫描识别sdkSDK,以满足各行业应用需求,给用户带来更好的体验。只需将ios安卓android身份证拍照扫描识别sdkSDK集成到APP中,即可通过手机摄

langzihuitou890的博客 794

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

android软件是真的吗,安卓手机拍照太假,苹果才够真实,真是这样吗

原标题:安卓手机拍照太假,苹果才够真实,真是这样吗随着科技的不断进步,现在手机的功能也随之越来越强大,而手机相机更是从最早的30万像素的摄像头,已经跃升到了现在的4800万像素,提升了160倍,其历时还不到20年。而人们对于手机拍照的要求经历了能拍到拍清楚,再到拍漂亮,而现在很多加入的各种算法,可以让人更漂亮,让月球更清晰,于是就有人不禁感慨“”安卓手机拍照太假,苹果才够真真实“”,事实是这样吗?...

weixin_42666036的博客 872

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

安卓 拍照、录像

通过调用系统接口,进行拍照和录像 示例demo下载 示例源码下载 package sc.demo.androidcarmera; import java.io.File; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Date; import android.app.A...

暂无内容 983

拍照安卓项目

一.拍照 Empty Activity1.AndroidManifest.xml <uses-feature android:name="android.hardware.camera" android:required="false" /> <uses-permission android:name="android.permission.CAMERA" /> <uses-permission android:name="android.permissio

m0_68456185的博客 1701

安卓不预览拍照与后台拍照功能实现

安卓不预览拍照与后台拍照功能实现 去发现同类优质开源项目:https://gitcode.com/ 资源描述 本资源提供了一种在Android应用中实现无预览拍照及后台拍照功能的方法,并支持将拍摄的照片转换为竖屏格式,并保存至设备SD卡。通过调用摄像头API,开发者可以轻松集成这一功能,提升应用的拍照体验。 功能特点 不预览拍照:允许应用在不需要显示摄像头预览界面的情况下,直接拍照。 后台拍照:...

gitblog_06705的博客 707

unity调用安卓拍照并裁剪返回图片路径

主要脚本 package xxx; import android.Manifest; import android.app.Activity; import android.content.Context; import android.content.Intent; import android.content.pm.PackageManager; import android.graphic...

Mediary的博客 633

安卓开发:使用手机拍照功能

概述 在安卓开发过程中,使用手机拍照功能的核心代码其实非常简单,仅仅只是一句呼唤系统Intent而已: Intent intent = new Intent("android.media.action.IMAGE_CAPTURE"); 要是软件开发真的这么简单就好了,而且核心代码也仅仅只是核心代码而已。为了完成整个过程:调用手机摄像头、拍照、剪切照片、获取照片、处理照片,还是需要围绕核心

女儿控老徐的专栏 6334

安卓不预览拍照与后台拍照功能实现:实现无预览拍照和后台操作的利器

安卓不预览拍照与后台拍照功能实现:实现无预览拍照和后台操作的利器 去发现同类优质开源项目:https://gitcode.com/ 在当今移动应用开发中,拍照功能已成为许多应用的标配。然而,传统的拍照方式往往需要显示预览界面,这在某些应用场景下显得不那么灵活。今天,我们将为您介绍一个开源项目——安卓不预览拍照与后台拍照功能实现,它可以帮助开发者轻松实现无预览拍照及后台拍照,为用户带来更加流畅的体验...

gitblog_06751的博客 1070
上一篇: Android 5.0 RippleEffect
下一篇: Android关于SDCard存储
linuxMinx
博客等级 码龄15年 195粉丝 79原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值