AM安卓完整报告.docx

上传人:夺命阿水 文档编号:1498458 上传时间:2024-06-29 格式:DOCX 页数:12 大小:22.34KB
返回 下载 相关 举报
AM安卓完整报告.docx_第1页
第1页 / 共12页
AM安卓完整报告.docx_第2页
第2页 / 共12页
AM安卓完整报告.docx_第3页
第3页 / 共12页
AM安卓完整报告.docx_第4页
第4页 / 共12页
AM安卓完整报告.docx_第5页
第5页 / 共12页
点击查看更多>>
资源描述

《AM安卓完整报告.docx》由会员分享,可在线阅读,更多相关《AM安卓完整报告.docx(12页珍藏版)》请在课桌文档上搜索。

1、AM安卓完整报告Android照相机软件1.软件需求分析如今很多科技进步更新很快,也给人们带来了便利,手机的功能越来越强大,人们对手机的需求早已不是基本的打电话和发短信,人们更多的是希望手机能像电脑一样便利,所以智能手机慢慢成为人们选择的目标。其中Android照相机的种类也越来越多。设计Android照相机首先要比照相机的各种性能有肯定的解,要知道一个Android照相机都包含哪些必备的东西,在大脑里形成肯定的脉络。布没有硬件的状况卜可以在虚拟机里创建开发环境和测试。Eclipse就是一个开放源代码的、基于Java的可扩绽开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建

2、开发环境。幸运的是,Eclipse附带了一个标准的插件集,包括Java开发工具(JavaDevelopmentKitJDK)0基于Android的笑脸识别照相机和一般照相机有大部分的性能是一样的,都须要进行对主界面的设置,相机焦距的自动调整,配置相机特性的参数,保存图片等等。不同的在于,笑脸识别照相机是一款手机处在拍摄界面时通过被拍摄人是否微笑来感应从而实现拍照功能,即先轻敲摄像头按钮,当被拍人物微笑就会时自动拍照。2.软件总体设计2.1过程设计(1)主界面:全屏,半透亮;(2)轻敲摄像头按钮,当被拍人物微笑时自动拍照:(3)图片被点击触发的时间:(4)拍摄的图片的预览设置:预览大小,设置Su

3、rface辨别率;(5)图片保存和保存拍摄图片后还须要配置相机特性的参数,设置保存的图片尺寸以及设置图片质量;(6)拍摄效果:反光,黑白等:(7)写相应的数据权限。2.2拍摄流程图主界面笑脸感应拍摄相机自动焦距保存图片开启相机拍摄图片预览退出屏幕常亮放弃拍摄返回拍摄主界面2.2拍摄流程图3.关键技术分析设计Android照相机过程一些可能须要用到的函数:(1)创建一个ACtiVity用来标识恳求照相功能。activity在创建的时候回调的函数主要用来初始化一些变量。SurfaceHoldcr.Callback接口:SurfaceHolder.Callback是用于接受发生在SurfaceVie

4、w中变化的信息SurfaceHoldcr.CalIback实现三个函数:SurfaccChanged当surface的大小或是尺寸变更的时候调用SurfaceCreated:当surface被创建时调用SurfaccDcstroyed:当surface被毁坏时调用。(2)SurfaceView控件显示照相机中的预览效果。(3)屏幕显示设为半透亮,全屏,没有标题:SetContentView(R.layout,main):mSurfaceView=(SurfaceView)findViewById(R.id.surface_camera)(4) SurfaceHolderSUrfaCeHolde

5、r用来限制SurfaceView,它是系统供应的一个用来设置SurfaceVicw的一个对象,而它通过SurfaceView.gelHolder0这个方法来获得。而Camera提供一个SetPreviewDisplay(SurfaceHolclcr)的方法来连接SUrfaCeHOlder,并通过来它限制SurfaceViewo(5) StartPreVieW()和StoPPreVieW()开启和关闭预览。(6) Camera.open()这走个静态方法,假如相机没有别人用着,则会返回一个相机引用,假如被人用着,则会抛出异样。(7) )SurfaceHolder.Callback这是个holde

6、r用来显示SUrfaCCVieW数据的接口,他分别必需实现3个方法:SUrfaCeCreatedo这个方法是surface被创建后调用的:SUrfaCeChangedo这个方法是当SurfaceVicw发生变更后调用的;SUrfaCeDeStrOyed()这个是当SurfaceView销毁时调用的。SurfaccHolde通过addCallBack()方法将响应的接I绑定到他身上。SurfaceHoldcr还必需设定一个SeITyPeO方法。(8)MySurfaceView类它继承于SurfaceView,并在里面实现了照相机的预览功能.(9)camera.tackPiture()Canler

7、a.tackPiture()这个方法是用来实现拍照功能,这个方法有二个参数:ShutterCalIBackshutter,PictureCallBackraw和PictureCallBackjpeg.(10) shutter作用:拍照瞬间调用。(11) raw作用:获得没有压缩过的图片数据。(12) jpeg作用:返回jpeg的图片数据。(13) null当不须要对图片进行处理时,可以干脆用null代替。须要留意的事当调用camera.takePiture方法后,camera关闭了预览,这时须要调用StartPreVieW()来重新开启预览。(14) notify_calIback用于处理一些

8、通知的消息,如按了快门等。(15)我们通过BitmapFactory.decodeByterray(data,0,data,length)来获得图片并通过io处理,将图片保存到想要保存的位置。(16) setPreviewCallBack0.功能是为每一帧图片增加回调,处理并显示。4.软件具体设计4.1授权(1)首先,须要授权。uses-permissionandroid:name=android.permission.CAMERA(2)自动对焦功能:uses-featureandroid:name=android.hardware,camera,autofocus/4.2主界面的设计主界面准

9、备运用Absolute1.ayout布局来设计该界面,并且定义了一个全屏的SurfaceView用来拍摄者在进入程序的第一个界面(就是拍照界面):两个BUlIon分别是:拍照、退出。摄像头界面将通过全屏(横屏)显示。屏幕显示设为半透亮的,其代码为:setContentView(R.layout,main)04.3 拍照设置依据拍摄的方向旋转图片,还要设置被点击触发的时间配置。但是,这是对于一般的相机,对于笑脸感应照相机则是不须要被点击触发的时间配置的,它是依据人的面部表情来确认是否拍照,当人物微笑时拍摄主界面就会有所感应,就会实现拍照功能,但是,当人物面部没有任何表情或不是微笑时,拍摄界面就不

10、会有任何反应,即须要先轻敲摄像头按钮,当被拍人物微笑时就会自动拍照。还有很重要的一点就是这个笑脸感应照相机是须要前置摄像头的。拍照前的设置完毕了,那么接下来就是拍照了,拍照用到了一个Camera.tackPiture()这个方法,这个方法,有二个参数分别是ShutterCallBackshutter,PiclureCalIBackraw,PictureCa11Backjpeg。当起先拍照时,会依次调用ShUtter的OnShUtter()方法:raw的OnPictureTaken方法:jpeg的OnPiCtUreTaken方法。三个参数的作用是shutter,拍照瞬间调用;raw,获得没有压缩

11、过的图片数据:jpeg,返回jpeg的图片数据。当你不须要对图片进行处理,可以干脆用null代替。再接下来就是在Android相机快门关闭时候的回调接口,通过这个接口来通知用户快门关闭的事务,这时Android相机在快门关闭的时候都会发出响声,依据须要可以在该回调接口中定义各种动作,例如:使设备振动等等。而且这里须要留意,当调用CameraJakePiture方法后,camera关闭了预览,这时须要调用StartpreVieW()来重新开启预览。这样就是实现了拍照的功能。起先拍照时,还要准备用于表示对焦状态的图片,对焦胜利后,变更状态图片,最终停止拍照。还须要创建一个PictureCallba

12、ck对象,并实现其中的OnPictureTaken方法,该方法用于处理拍摄后的图片数据。4.4 拍摄图片预览设置创建一个照相,要考虑用什么控件显示照相机中的预览效果,那就是SUrfaCeView,而限制SurfaccVicw则须要一个SUrfaCeHolder,它是系统供应的一个用来设置SurfaceView的个对象,而它通过SUrfaCeVieW.getHolderO这个方法来获得。而Camera供应一个SetPreVieWDiSP供y(SurfaceHolder)的方法来连接。还有就是运用到一个拍照的类,同样也是SurfaceView来实现的,想要在一部分上显示,并且运用按钮操作的话,可以

13、修改一下这个类,而且这个是拍照之后停留在拍照页面的;或者假如须要在拍照后不停留在拍照页面的,可以Fl行修改和添加参数。还须要用到SurfaccHolder来通过它限制SUrfaCeVieW,而我们所运用android的Camera类供应了StartPreVieW()和StopPreviewO来开启和关闭预览。关系如下:CameraSurfaceHolderSurfaceView0Camera.。Peno这是个静态方法,假如相机没有别人用着,则会返回一个相机引用,假如被人用着,则会抛出异样。还有就是SurfaceIIolder.Callback,这是个holder用来显示SurfaceView数

14、据的接口,他分别必需实现3个方法:SurfaceCreatecl()这个方法是surface被创建后调用的;SUrfaCCChangedo这个方法是当SUrfaCeViC谭发生变更后调用的;SUrfaCeDeStrOyed()这个是当SurfaceView销毁时调用的。SurfaceHoldc通过addCalIBackO方法将响应的接口绑定到他身上。SurfaceHoldcr还必需设定一个SetTyPe()方法。写一个MySUrfaCeVieW类,他继承于SurfaceView,并在里面实现了照相机的预览功能。这样应当就能够预览了,接下来就是对一些细微环节的设计。首先要依据屏幕方向设置预浏尺寸

15、和拍摄的方向旋转图片(纵向拍摄时要须要将图片选择90度),再然后对相机所拍摄的影像的预览进行设宣。其中设置预览的画面的代码:camera.SetParameters(parameters)还要设置预览大小:Camera.Parametersparameters=camera.getParameters()相机特性的参数设置:Displaydisplay=wm.getDefaultDisplay()还有就是要设置Surface辨别率相机和H动焦距屏,还要保证幕常亮等等。4.5 图片保存和其他设计图片的保存基本步骤:(1)获得当前口期时间,作为文件名;(2)推断SD卡是否存在,存在的话获得根书目位

16、置;(3)将位图压缩为JPEG格式,写进SD卡中。其中要运用将拍摄的图片传入RictureCallback接口的OnPictureTaken方法。还有就是要图片保存就须要在那个参数中的jpeg的方法里面进行处理。JiBiiBitmapFactory.(IecodeByleArray(data.0,dta.length)来获得图片并通过io处理,将图片保存到想要保存的位置。并且还须要设置保存的图片大小,设置图片质量以及设置图片格式等等。其中图片质量:parameters.setPiCtureFormat(PixelFormat.JPEG)设置图片的大小:parameters,set(jpeg-q

17、uality,xx):安卓调用系统相机拍照,获得原始图。在OnActivityResult中干在用data.getData()的方式来生成bitmap,获得拍照生成的缩略图。先验证手机是否有SdCard,若版式为横版则须要在Manfest.xml中,给activity添加一个属性:android:configChanges=orientationReyboardIIidden在activity中添加:publicvoidonConfigurationChanged(Configurationconfig)super.onConfigurationChanged(config):。增加效果:反光

18、,黑白,红褐色等,运用方法:干脆设置相机的parameters即可params.SetColorEffect(Camera.Parameters.EFFECT_NEGATIVE);相机滤镜:SetPreVieWCaIIBaCk(),功能是为每一帧图片增加回调,处理并显示。(1)给camera设置SetPreviewCalIBack(2)获得每帧的数据,解码为RGB编码(3)用新数据获得位图(4)对位图进行图片处理,反光等等(5)将处理后的位图显示在imageview上5.软件测试方案软件测试描述一种用来促进鉴定软件的正确性、完整性、平安性和质量的过程。软件测试是在规定的条件下对程序进行操作,以

19、发觉程序错误,衡量软件质量,并对其是否能满意设计要求进行评估的过程。测试目标目的:发觉一些可以通过测试避开的开发风险;实施测试来降低所发觉的风险:确定测试何时可以结束;在开发项目的过程中将测试看作是一个标准项目。(1)照相机系统的数据流测试数据流测试指关注变量接收值的点和运用(或引用)这些值的点的结构性测试形式。数据流测试指关注可以用作路径测试的真实性检查。数据流测试两种基本方法:一组基本定义和一种统一的测试覆盖指标结构测试;基于程序片的概念的测试。(2)非功能性测试它是与功能不相关的需求测试,如:性能测试、可用性测试等。在设计解决方案的过程中满意功能性需求当然是很重要的。但是,假如没有考虑功

20、能性需求,解决方案则很难取得实效。其中非功能性需求特点:不要脱离实际环境;牢靠性:可用性;有效性;可维护性;可移植性。6 .设计总结AndrOid是一款经过彻底调试的系统,目前有.超过10万款支持Android的应用程序,其中有很多程序可以简化和加速开发过程。对于那些对软件牢靠性要求不高,且价格可以支持所需硬件的医疗设备,Android具有很强的竞争力。它在功能、资源需求和生产力之间做了很好的平衡,并且具有以规模浩大且旺盛的1.inUX产业链为基础的额外优势。所以,从而看到了Android在我们生活中的重要性,但是学会和学好还是须要下很大的功夫,不能仅仅的局限于课本,还要与实践相结合,知道每个

21、代码的含义和用法,多动手,多思索,多尝试的去写程序才可能学会它。通过这次试验设计,我对Java又有了肯定地深化了解,也知道了自己很多的不足。在本次试验设计中明白了必需先要理解其相应的意思,然后依据自己的思路一步一步的做下去,不能一味的照搬网上的东西,网上的资料是用来借鉴和参考的,不能因为网上有现成的就干脆复制粘贴过来,肯定要对其进行深化的探讨,绽开自己的想象力和多去思索些为什么,让自己的思维活跃起来,把这些学问变成臼己的。试验中学到了很多关于Android的学问,同时也让我自己比照相机进行了更深层次的了解,平常也只是用手机来照相,从来没有想过它的原理和使它能够运行的代码是哪些。做这次试验也发觉

22、了Fl己其实有太多的地方不懂,同样也感觉到了Android的奇妙和其中的乐趣,在这次试验搜集了大量的资料,增加了H己的学问量,开拓了想象力。在这次试验设计中了解到了很多,如开启相机,不能放在构造函数中,不然不会显示画面,还有一些设计的小细微环节都是臼己没有考虑到的,比方一起先并没有想到笑脸感应照相机是须要运用前置摄像头的,对于这个,臼认犯难度系数应当很大。还有像要去设计屏幕常亮,半透亮等等,所以很多问题都须要深化的探讨,即使常常运用手机中的照相机,但是当让自己设计时很多东西都是想不到的,这也充分说明白前人的聪慈和宏大。并且,我觉得很多东西是要不断积累的,思路想法也是一样的,只有不断地去想去思索才能够更好的完善自己一起先的理念。7 .参考资料1WartOn.java.多线程编程初步.电脑报.2004年4月.2CayS.Horstmann,java核心技术卷1:基础学问.2011年10月.3韩超,梁泉.Android系统原理及开发要点详解.电子工业出版社.2010年1月.4李芝兴,杨瑞龙.Java程序设计之网络编程.清华高校出版社.5Android应用开发揭秘杨丰富机械工业出版社.6(GoogleAndroid揭秘人民邮电出版社.

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 在线阅读 > 生活休闲


备案号:宁ICP备20000045号-1

经营许可证:宁B2-20210002

宁公网安备 64010402000986号