提供源码下载地址:,仅供参考学习计算机能力拓展训练任务书学生姓名:专业班级:指导教师:工作单位:计算机科学与技术学院题目:基于Andriod环境的照相工具的设计初始条件:理论:.NET、Java、Linux、Android或WindowsPhone环境,Oracle、SQLite、SQLServer、SQLServerCE或MySQL数据库,C#、Eclipse、C++或其它合适、有效的开发工具,等等。实践:计算机科学系实验中心提供计算机及软件开发环境。要求完成的主要任务:(1)分析设计目标:研究说明课程设计任务、课题要达到的目标(2)分析设计方法与技术:研究课题所使用的设计方法,具体的开发环境和工具软件,分析课题使用的技术(3)设计系统:包括需求分析、总体设计(包括模块结构)、详细设计(包括界面、核心代码,在确定好的开发环境中利用确定的工具软件进行系统实现)。(4)编制好程序后,设计若干测试用例,上机测试所设计的系统。(5)设计报告按学院要求格式要求书写。时间安排:1、20周,周1-5,计算机学院实验中心(三楼),设计。2、20周周5下午,计算机学院实验中心(三楼)汇报设计成果、交课程设计报告、源程序(CD盘)。指导教师签名:年月日系主任(或责任教师)签名:年月日1基于Andriod环境的照相工具的设计目录1、训练要求-----------------------------------------------------21.1、能力拓展训练的范围和内容规定如下-----------------21.2、能力拓展训练的目标-------------------------------22、系统概述------------------------------------------------------22.1题目描述------------------------------------------22.2背景介绍------------------------------------------22.3开发环境------------------------------------------23、需求分析-----------------------------------34、设计模型-----------------------------------44.1总体设计------------------------------------------44.2详细设计-----------------------------------------54.2.1Android中Camera的主要事件和方法----------------54.2.2Mycamera的主要功能设计-------------------------64.3MyCamer的界面设计--------------------------------74.4软件图标-----------------------------------------95、编码和调试--------------------------------------------------95.1主要函数编码---------------------------------------95.1.1MainActivity--------------------------------------95.1.2、PreviewImageView--------------------------------195.1.3主要按钮的编码-----------------------------------235.2调试中的主要问题与解决措施--------------------------256、结果分析-----------------------------------267、心得体会-----------------------------------288、参考文献-----------------------------------2821、训练要求1.1、能力拓展训练的范围和内容规定如下:1.在信息系统领域,选择一个小型应用问题;2.对所选应用问题进行需求分析和系统设计;3.根据题目要求,选定设计开发工具,以及相应软件工具;4.学习并掌握相关工具的安装及使用;5.根据软件工程技术设计系统,并在搭建起的开发环境下进行系统开发和调试;6.所完成的小型系统要能正常运行,达到一个原型系统功能目标。1.2、能力拓展训练的目标运用课堂所学的基本理论、技术、方法,通过学习、实践最新的知识与技术,拓展自己的知识层次和计算机应用能力。通过对当今Web应用程序主流开发技术进行学习,提高自身的实践动手能力和创新能力,使所学更加贴近社会实际需要,为今后走向社会打下较坚实的基础。2、系统概述2.1题目描述基于Andriod环境的照相工具的设计,在Andriod平台上实现简单的照相机应用程序,能在Andriod平台上成功运行。2.2背景介绍随着移动设备的不断发展,安卓平台上的应用程序的开发与完善越来越受到开发人员的青睐与重视,对于拍照,人们在日常生活中更趋向于用移动设备的照相机进行拍照存储,因为移动设备上的照相机软件方便并且功能齐全,与此同时照相机软件也在不断的更新,功能越来越全面越来越强大,除了传统的照相机外,还出现了像美图相机、魔漫相机等具有创新意义的照相机软件,了解照相机的基本功能的实现对于我们今后开发和完善照相机具有重要的意义。因此,通过本次训练主要实现基本的照相机系统的功能,如何调用系统摄像头,如何拍照以及其他一些简单的功能。2.3开发环境搭建安卓开发环境需要如下配置:31、eclipse-SDK-4.2-win64.zip(我的电脑是64位系统)2、JDK(JavaDevelopmentKit)3、ADT,安卓开发的一个eclipse的插件,即AndroidDevelopmentTools,为开发者提供了一个完整的开发环境。4、SDK,它可以为某个程序设计语言提供应用程序接口API的一些文件,但也可能包括能与某种嵌入式系统通讯的复杂的硬件。3、需求分析随着科技的发展和无线移动互联网的普及,手机的功能越来越强大,人们对手机的需求也不仅仅是基本的打电话或玩简单的小游戏了,人们更多的是希望手机能像电脑一样方便,所以智能手机渐渐成为人们选择的目标。而Google的Android系统凭借其通用、开源、免费的特点迅速的在短时间内占有了大量的市场,成为时下手机终端产品时下的热门。而作为Android智能手机的必备功能之一的拍照功能更是常成为用户选择Android产品的重要依据,其质量、稳定性、拍摄效果往往可以左右人们的选择。Android是基于Linux内核的软件平台和操作系统,是Google在2007年11月5日公布的手机系统平台,早期由Google开发,后由开放手机联盟(OpenHandsetAlliance)开发。它采用了软件堆层(SoftwareStack,又名以软件叠层)的架构,主要分为三部分。低层以Linux内核工作为基础,只提供基本功能;其他的应用软件则由各公司自行开发,以Java作为编写程序的一部分。Android下的Camera模块同样为三部分,应用层,HAL层,Linux驱动层。应用层由Google提供参考代码,有较完善的接口,HAL层需要与驱动层相配合,HAL层通常由芯片厂商提供参考代码,由于没有统一的标准,不同的芯片公司会有不同的代码结构。驱动层会涉及Camera控制器驱动和CameraSensor驱动,amera控制器驱动会由芯片厂商提供参考代码,CameraSensor驱动是手机设计公司根据Camera控制器驱动提供的接口来对具体的Camera外设进行初始化和配置以协调Camera控制器和CameraSensor使他们能够正常工作。但在CameraHAL层到驱动层没有固定的代码编写标准,这就为代码的编写提供了各种的框架结构,不利于手机的研发。针对这些问题,本文主要利用java程序开发语言,研究如何在安卓平台上实现照相机的基本功能,如何利用API进行控制和配置照相机参数,帮助自己更好的理解和尽快的解决AndroidCamera相关的问题,提升对安卓平台上应用程序开发的经验。44、设计模型4.1总体设计本软件主要是实现安卓手机的照相功能,不涉及摄像功能。闪光灯(自动,关闭,开启)自动对焦静音拍照,调转到图片预览界面是否保存图片拍照界面调用系统摄像头前置摄像头后置摄像头5本软件主要实现照相机软件的简单功能,主要有如下几个主要功能:1)调用系统摄像头通过API调用系统的摄像头,取景拍照2)前置摄像头和后置摄像头的选择通过设置摄像头模式的参数实现选择前置摄像头还是后置摄像头进行取景拍照3)自动对焦通过过调用API函数实现对图片的自动对焦4)闪光灯的选择;设置三个闪光灯模式:自动,闪光,关闭,通过按钮来选择拍照时的闪光灯的模式5)拍照通过调用拍照按钮来实现获取照片,并转到预览图片的界面6)保存图片在预览图片界面,设置保存图片按钮,如果选择保存则在sd卡上创建文件保存图片,如不选则图片不保存7)返回继续拍照在预览图片界面设置返回继续拍照按钮,如果按下返回继续拍照,则跳转到拍照界面继续拍照。8)在每个界面设置home键按下home键则返回到手机主界面,退出照相机系统4.2详细设计4.2.1Android中Camera的主要事件和方法Android中专门提供了Camera来处理相机相关的事件,Camera是一个专门用来连接和断开相机服务的类,Camera下面包括如下几个事件:Camera.AutoFocusCallback:自动调焦功能;Camera.ErrorCallback:错误信息捕捉;返回继续拍照,或者返回手机主界面6Camera.Parameters:相机的属性参数Camera.PictureCallback:拍照、产生图片时触发;Camera.PreviewCallback:相机预览设置;Camera.ShutterCallback:快门设置;Camera.Size:图片尺寸;要在Android中使用相机服务很简单,Camera没有构造方法,我们要使用它直接通过open()方法来打开相机设备,然后通过Camera.Parameters对相机的一些属性进行设置,比如输出图片的格式、大小等等。下面是Camera类一些常用的方法介绍。这里重点说明一下拍照的方法和使用,takePicture方法要实现3个回调函数,分别是:Camera.ShutterCallback(快门)和两个Camera.PictureCallback(图像数据)。这里我们在拍照之后要取得图像数据就需要实现Camera.PictureCallback的onPictureTaken方法。onPictureTaken中第一个参数就是图像数据,第二个参数则是相机。4.2.2Mycamera的主要功能设计相机应用程序拍摄的步骤为相机类提供图像的捕捉启动预览停止预览拍摄照片检索图片保存图片继续拍照。采用open()方法获得相机实例。获取与getParameters()相关的配置项目如果有必要的话,可以重新配置相机特性参数,修改返回的Camera.Parameters对象,并调用setParameters(Camera.Parameters).如果要改回显示方向的话,则调用setDisplayOrentation(int)7传递完全初始化的SurfaceHoloer给setPreviewDisplay((SurfaceHolder)。如果没有一个表面景象surface的话,相机将无法启动预览。调用startPreview()来开始更新预览表面景象surface。在可以拍摄一张照片之前,就必须是已经可以开始预览。当你决定要拍摄这一