ndroid相机使用系统相机自定义相机大图片处理gaochun

本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显示出来,该例子也会涉及到Android加载大图片时候的处理(避免OOM),还有简要提一下有些人SurfaceView出现黑屏的原因。

知识点:

一、调用系统自带的相机应用

二、自定义我们自己的拍照界面

三、关于计算机解析图片原理(如何正确加载图片到Android应用中)

所需权限:

则会把拍照的图片存储到我们传入的Uri对应的File里面。

4.我们调用startActivityForResult(intent)来启动这样一个系统相机app之后,然后在当前应用Activity的onActivityResult()中接受到返回拍照成功或者失败的消息,做相应处理。 5.“压缩处理”(Android应用中加载大图片),并显示到ImageView中。二、自定义照相机

1.检查相机是否存在,并获取相机Camera。

2.创建一个相机图像预览类:extends SurfaceView 并 implements SurfaceHolder (我定义:MySurfaceView) 3.把这个预览类放入一个自定义布局layout里面,并且可以在layout里添加自己的其他按钮 4.设置对应的拍照按钮然后听事件 5.捕获照片和保存图片

6.释放掉我们使用的相机Camera,不然之后其他应用将无法使用它。

三、计算机解析图片的方式和Android中大图片Bitmap的压缩显示处理

这个问题有点老生长谈了,平时我们经常遇到一些图片资源,我们把它加载到内存发现抛出内存不够用的异常,即OOM,当然加载图片时出现的OOM情况有很多种,比如单张图片没有做压缩,导致图片占用内存过大而发生内存溢出,也有多张图片一次性加载进来,导致的内存溢出。

通常单张大图,我们加载进来往往会经过一个图片的压缩处理的过程,而如果多张图片加载,我们可能就需要一些缓存机制,再加上一些算法来保证程序不出现OOM。

我们这里想要讲的知识点跟单张大图比较有关系

首先,我们知道一个图片,它是由很多像素点来表示的,而像素点的个数只跟图片的分辨率有关,而跟图片所占的内存空间大小无关。比如我们的桌面壁纸:1280 * 768 的分辨率,那么它就有 1280 * 768 = 983040个像素点,这意味着什么呢?我们知道我们要表示一个像素点的颜色,最经常我们需要RGB三种颜色来表示,而R:0~255,相当于两个FF的位置,就是8位,这样的话RGB合起来,一个像素点的表示就需要24位(这就是我们平衡听到的24位图),而加上透明度的8位,就是平时说的32位图。那么一张图片,它加载到内存中的话,它会占用多大的空间呢?

计算方法:(像素点 * 一个像素所占用的byte数) / 1024 / 1024 (MB)

以1280 * 768 的分辨率,32位图为例:所占内存大小: ((1280 * 768 * (32 / 8)) / 1024)/1024=3.75(MB)

说了这么多,那么我们再来说下Android系统的规定吧,Android系统严格规定了每个应用所能分配的最大的内存为多少,我们知道有一个VM值(在我们创建模拟器的时候),这个VM值里面便是我们所说的堆空间(Heap Size),当你的应用占用的空间已经超出我们定义的堆空间大小,那么不好意思,OOM

这样的话,我们明白了图片的大小占据原理,还有尽量不要超出这个堆空间,那么OK,现在问题变得简单了。如果我们有一种方式可以在图片加载进来之前,知道图片的大小,然后改变它的长、宽,这样的话,分辨率便变小了,这样出来的乘积也就变小了。比如:我们的屏幕只有320 * 240, 这时候你加载大分辨的图片进来最多也只能显示成这样,所以我们常采用的是对图片进行压缩处理。这里有个概念叫压缩比:

长:1024 / 320 = 3.2  约等于 3

宽:768 / 240 = 3.2

那这样我们如果把图片压缩成这样大小的,最后的图片加载进来的大小便是

((320 * 240 * (32 / 8)) / 1024)/1024=0.29(MB)

希望我这样讲完,大家都能听懂了,我这里先把照相机实例中出现的关于如果处理这块图片的代码先粘出来

关于堆空间:

堆(HEAP)是VM中占用内存最多的部分,通常是动态分配的。堆的大小不是一成不变的,通常有一个分配机制来控制它的大小。比如初始的HEAP是4M大,当4M的空间被占用超过75%的时候,重新分配堆为8M大;当8M被占用超过75%,分配堆为16M大。倒过来,当16M的堆利用不足30%的时候,缩减它的大小为8M大。重新设置堆的大小,尤其是压缩,一般会涉及到内存的拷贝,所以变更堆的大小对效率有不良影响。

废话少说下面就看代码咯~~为了大家看起来方便点,代码的结构可能不是很规范!

代码部分:

一、用系统的相机

按钮点击之后开启系统相机Activity

生成File文件,并得到Uri

二、用自定义的相机

检测相机设备是否存在:

按钮按下之后的判断:

自定义的SurfaceView类:

自定义相机Activity类:(为了避免当用户按下Home键,之后再回到我们App中,SurfaceView变黑屏,我们需要将SurfaceView加载到FrameLayout中的代码写在onResume中)

THE END
0.张店有回收二手照相机的吗张店有回收二手照相机的吗笔记本电脑 查看全部7条评论回答 写回答 TJZ 有专门的回收电器,数码产品的地方。10年我也卖过,那些烂手机十块钱一个卖了(修都修不好的那种) 有用(0) 回复 举报 相关问题 二手手机 1.6万 浏览 311 回答 电脑 2.1万 浏览 194 回答 笔记本电脑 1.3万 浏览 181 回答 2019jvzquC41ycv/|xq0eqs/ew4cum5eg}fknue43?:2296`5;>577<`57mvon
1.张店有回收二手照相机的吗张店有回收二手照相机的吗问在线客服扫码问在线客服西二路的手机店在收 jvzquC41cuq/|xq0eqs/ew4z1577795920nuou
2.在桂林大量回收旧手机照相机电脑二手手机桂林二手市场是一个为广大网友提供方便快捷的二手商品供求信息的平台,包括二手电脑、二手手机、二手汽车、二手冰箱、二手洗衣机、二手办公用品、出租房、二手房、二手家具、二手数码相机等二手产品。jvzquC414unpw7lwknoonrkg0eun1ywqfwiu/<<9/:666A:0jvsm
3.SamsungGalaxyS10系列照相机回收站功能(G9700/G9730/G9750)|Samsung移动设备常见问题. 访问三星售后网站查看更多'Galaxy S10系列照相机回收站功能(G9700/G9730/G9750)'相关信息jvzquC41yy}/ujruwpm/exr1ep5twyuqtv5nqknng/jfxrhgu1lvplykqp3ph6x32/yftrju/egng{f/tgizeunpi/yuc}nqp/m:995i;991iB<721
4.unity面试题整理50道常见Unity中,照相机的Clipping Planes的作用是什么剪裁平面。 Near和Far是从相机到开始渲染和停止渲染之间的距离。 43、Heap与Stack有何区别? heap是堆,stack是栈。 stack的空间由操作系统自动分配和释放,heap的空间是手动申请和释放的,heap常用new关键字来分配。 jvzquC41dnuh0lxfp0tfv8Jfkuopphqk1cxuklqg1fkucrqu13668;>8:7
5.d6照相机京东是国内专业的d6照相机网上购物商城,本频道提供d6照相机商品图片,d6照相机价格,d6照相机多少钱信息,为您选购提供全方位d6照相机怎么样,d6照相机好不好参考,提供愉悦的网上购物体验!jvzquC41yy}/lm3eqo5ir{r18788fAi8fe=16A<;73:/j}rnAuusvhy{rgCtq{yafglbwuy(dtgofF*G6'HE'K8'G:+95.GF
6.张店有回收二手照相机的吗张店有回收二手照相机的吗笔记本电脑 查看全部7条评论回答 写回答 715218dx 不可信!听我的……别在网上买二手货……一点保障都没有……望采纳! 有用(0) 回复 举报 相关问题 二手手机 1.6万 浏览 311 回答 电脑 2.1万 浏览 194 回答 笔记本电脑 1.3万 浏览 181 回答 2019联想拯救者y7000 I7 9750jvzquC41ycv/|xq0eqs/ew4cum5eg}fknue43?:2296`5;>5777`57mvon
7.家电调研报告(通用10篇)家电行业按照产品的不同可分为大家电和小家电,前者主要有:彩电、冰箱、冰柜、空调、洗衣机、家庭影院等;后者主要有:电风扇、微波炉、吸尘器、吸油烟机、热水器、照相机、电饭锅、燃气灶等等。这类行业的特点是: 1、行业竞争日趋激烈。主要表现在家电企业生产能力过剩、库存积压严重,销售收入增加幅度低于销售量的增长jvzquC41yy}/qq6220ipo8f142842;4849966@3jvor
8.“ONLYPAI”(奥林匹亚)Z—868傻瓜机/胶片相机图片收藏・“理光”FF—9D傻瓜机_傻瓜机/胶片相机 9品 ¥150 ・“理光”LX—10_傻瓜机/胶片相机 9品 ¥50 ・“理光”FF—9D傻瓜机_傻瓜机/胶片相机 9品 ¥150 【7788相机收藏】“傻瓜机/胶片相机”商品推荐:更多>>> ・凤凰牌显微工业照相机,元原手提箱,配件齐全,值得收藏展览_傻瓜机/胶片相机 8.5jvzquC4199>9zs3;;9=9:7hqo1vs1mjvckr`3;=7a99:;<6:60nuou
9.专技岗位晋升述职报告(通用11篇)至捐助物品:新旧衣服、皮箱、皮包、皮鞋百余件,新概念英语、医学日语词典、精装本草纲目各一套,还有照相机、手机、收音机、文曲星、手表、奶粉白糖黑芝麻糊等。至资助05级本硕连读某同学部分现金。这个学生十分困难,(大二时冬天还穿着单裤,我知道后,送给她一条新的保暖棉裤。大四那年我给她买过一双新鞋,她说这jvzq<84yyy4vpsx0eqs0hjsygp}bpp4u|dm049742:712B9;6:e66;:3:94ivvq