毕业设计(论文)-基于Android的手机照片管理系统_第1页
毕业设计(论文)-基于Android的手机照片管理系统_第2页
毕业设计(论文)-基于Android的手机照片管理系统_第3页
毕业设计(论文)-基于Android的手机照片管理系统_第4页
毕业设计(论文)-基于Android的手机照片管理系统_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

太原理工大学毕业设计(论文)用纸基于Android的手机照片管理系统摘 要随着智能手机的快速普及,智能手机操作系统市场风生水起。为了让智能手机用户能够随时随地查询互联网所提供的服务,一种高效的办法就是将应用系统的功能拓展到手机终端上,让手机能够通过移动网以及互联网访问Web网站并处理各种各样的业务。因此,智能手机的应用软件及其需要的服务将有广阔的发展前景。在如今这个智能手机系统群雄纷争的时候,2008年Google推出了一款名为Android的开源智能手机操作系统,它采用Linux内核,开放手机联盟(OHA)成员可以任意使用和修改SDK包,系统的开源性使其具有良好的拓展性。这款软件包括了操作系统、用户界面和应用程序,即智能手机工作所需要的全部软件。Android的最大特点是其开放性体系架构,不仅具有非常好的开发、调试环境,而且还支持各种可扩展的用户体验,包括丰富的图形组件、多媒体支持功能以及强大的浏览器。因此,对于软件从业人员来说,Android平台具有无限的吸引力。本文就在分析讨论Android手机软件开发技术原理的基础上,开发出能为用户提供更好的基于Android环境的图像处理软件。关键字:Android;图像处理;智能手机平台全套设计加扣 3012250582Based On The Android Mobile Phone Picture Management SystemAbstractWith the rapid proliferation of smart phones, smart phone operating system market, wind and water. In order for smart phone users to check the Internet anytime, anywhere services provided an efficient way to expand the function of the system will be applied to the mobile phone terminal, the mobile phone to Internet access via mobile networks, and variety of Web sites and process business. Therefore, the smart phone applications and the need for the service will have broad prospects for development. In todays smart phone system when disputes warlords, 2008, Google introduced a smart phone called the Android open source operating system, which uses Linux kernel, Open Handset Alliance (OHA) members can be free to use and modify the SDK package, the system It has a good open-source nature of the expansion of. The software includes the operating system, user interface and applications that need to work smart phones all the software. Androids biggest feature is its open architecture, not only has a very good development and debugging environment, but also supports a variety of scalable user experience, including rich graphical components, multimedia support, and powerful browser. Therefore, for software professionals is, Android platform has unlimited appeal. In this paper, the analysis and discussion Android mobile phone software development technology on the basis of the principle, developed to provide users with better software to handle photo based on Android platform.Keywords:Android;photo handling software;smartphone platformIII目 录1 绪论11.1研究内容11.2研究意义11.3研究现状和发展趋势12 系统分析32.1 研究目标32.2 需求分析33 系统开发环境及相关技术53.1 Android开发环境介绍53.2 Android开发平台搭建53.2.1 JDK安装53.2.2 Eclipse安装53.2.3 Android SDK安装63.2.4 创建AVD83.3 Android四大组件83.3.1 android四大组件详解83.3.2 android四大组件总结103.4 Animations动画113.4.1 Animations介绍113.4.2 Animations分类123.4.3 Animations的使用方法123.4.4 Animation的四个种类124 程序设计154.1 用户界面设计154.1.1 Android布局介绍154.1.2 界面布局步骤164.2 概要流程设计174.2.1引导流程174.2.2 本地选择图片流程184.2.3 相机选择图片流程184.2.4 图片编辑流程194.2.5 图片调色流程204.2.6 图片边框流程214.2.7 图片保存流程225 程序设计与实现245.1 文件结构与用途245.2 欢迎界面模块255.2.1 欢迎界面布局文件255.2.1 欢迎界面的Activity代码275.3 照片选择模块315.3.1 照片选择布局文件315.3.2 图片选择Activity315.4 照片编辑模块336 系统测试376.1 测试目的376.2 测试步骤及结果38总结41参考文献42致 谢43外文文献44II1 绪论1.1研究内容基于Android环境图像处理技术的应用设计的软件是基于Android手机平台,运用Java语言,用来处理本地图片和手机摄像头拍下的图片,给用户带来更好的体验和更加广阔的设计空间。本文旨在研究图像编程,图像处理是个非常复杂、有技术含量的领域,其衍生诸如图片动画、绘制图片等相当高级一些技术。1.2研究意义基于Android环境图像处理技术的应用设计可以进一步改善当今图像处理软件的用户体验,丰富当前的图像处理市场,让广大公众可以选择更加适合自身需求的软件,更好的为公众服务,帮助更多的人熟悉和掌握图像,并可以方便的处理图像。 1.3研究现状和发展趋势根据Nielsen的最新研究报告显示,智能手机市场份额中Android仍然排名第一,占市场份额的 46.3%, iOS系统只占 30%,如图1-1所示:图1-1 Nielsen研究报告从上图可以看出,Android、iOS 市场份额仍在继续增大,Blackberry 系统、Windows Mobile 系统和塞班系统的市场占有率都在不断萎缩中。唯一一个让人感到意外的是, Windows Phone 7操作系统正在缓慢增长中。Android平台首先就是其开发性,开发的平台允许任何移动终端厂商加入到Android联盟中来。显著的开放性可以使其拥有更多的开发者,随着用户和应用的日益丰富,一个崭新的平台也将很快走向成熟。开发性对于Android的发展而言,有利于积累人气,这里的人气包括消费者和厂商,而对于消费者来讲,最大的受益正是丰富的软件资源。开放的平台也会带来更大竞争,如此一来,消费者将可以用更低的价位购得心仪的手机。谷歌2008年开始向移动设备制造商免费提供Android操作系统。该软件目前被全球超过750款智能手机和平板电脑所应用,成为最受欢迎的移动操作系统。根据Laryy Page最新公布的数据,目前全球Android设备的激活量已经超过了7.5亿部。市场研究公司Enders Analysis分析师Benedict Evans指出,7.5亿部的Android设备激活量意味着,这种设备的活跃使用量约为6.75亿部。相比之下,iOS约为4亿部。市场研究公司Asymco分析师Horace Dediu则根据这一最新发布的官方数据做出预测称,到2013年8月中旬,Android设备激活量将达10亿部。43 太原理工大学毕业设计(论文)用纸2 系统分析2.1 研究目标1)了解Android应用程序的设计和开发过程;2)熟练使用Android控件和自定义控件;3)掌握与图片处理相关的Android中图片库;4)深入研究图片的构成和处理方法;5)熟悉和掌握图像编程。本软件是基于Eclipse的开发环境,依托Android中的图片库,开发出了针对Android平台的图像编辑程序。2.2 需求分析纵观图片编辑软件市场,对当前已有的图片编辑器进行分析,大多形式相近、功能单一,设计方面无亮点。分析当前市场上已有的软件并结合图片编辑用户的使用习惯,图片编辑软件需要提供用户非常实用易用的功能,并在UI设计和用户交互方面为用户提供良好的用户体验。通过对市场和用户的分析,得到以下功能需求:1)欢迎页:显示欢迎使用PoE图片编辑软件,点击进入;2)选择图片:提供两种选择图片的途径,用户可以选择本地手机上的图片或选择从摄像头中拍摄图片进行编辑;3)调色:对原图片进行调色;4)边框:对原图片添加边框,提供数种边框进行选择;5)涂鸦:对原图片添加自定义的小图片进行涂鸦;6)特效:对原图片添加特效,提供怀旧等多种特效;7)裁剪:对原图片进行裁剪;8)旋转:对原图片进行旋转;9)缩放:对原图片进行缩放;10)反转:对原图片进行反转,提供上下和左右反转功能;除了提供这些功能以外,在用户体验方面需要添加必要的动态效果和异步操作。图 2-1 功能框架图3 系统开发环境及相关技术3.1 Android开发环境介绍Android的上层应用程序是用Java语言开发,同时还需要基于Dalvik虚拟机,所以,Google公司推荐使用主流的Java继承开发环境Eclipse。只有Eclipse还不够,因为是使用Java语言进行开发,还应该有由SUN公司提供的Java SDK(其中包括JRE:Java Runtime Environment)。此外,Android的应用程序开发和Java开发有较大区别的,所以还需要有Google提供的Android SDK。同时,还需要在Eclipse安装ADT(Android Development Tools),为Android开发提供开发工具的升级或者变更,是Eclipse下开发工具的升级下载的工具。为使Android应用程序可以在模拟器上运行,必须创建AVD。简言之,需要安装好Java SDK、Eclipse、Android SDK、ADT、这些软件,才能搭建Android开发环境,从而进行Android应用程序的开发。3.2 Android开发平台搭建Android开发环境搭建主要由JDK安装,Eclipse安装,Android SDK安装,ADT安装,创建AVD四个步骤组成Android开发平台搭建详细步骤:3.2.1 JDK安装1)我的电脑-属性-高级-环境变量-系统变量中添加以下环境变量:2)JAVA_HOME值为:D:Program FilesJavajdk1.6.0_18(你安装JDK的目录)3)CLASSPATH值为:%JAVA_HOME%libdt.jar;%JAVA_HOMEbin;4)Path:在开始追加%JAVA_HOME%bin;5)NOTE:前面四步设置环境变量对搭建Android开发环境不是必须的,可以跳过。3.2.2 Eclipse安装如果你还么有Eclipse的话,可以去这里(/)下载,下载如下图所示的Eclipse IDE for Java Developers(92M),根据自己电脑的选择32位版本或64位版本,解压之后即可使用。3.2.3 Android SDK安装运行SDK Setup.exe,点击Available Packages。如果没有出现可安装的包,请点击Settings,选中Misc中的Force https:/.这项,再点击Available Packages。选择希望安装的SDK及其文档或者其它包,点击Installation Selected、Accept All、Install Accepted,开始下载安装所选包在用户变量中新建PATH值为:Android SDK中的tools绝对路径(本机为D:AndroidDevelopandroid-sdk-windowstools)。如图3-1所示:图3-1 SDK安装点击“确定”后,重新启动计算机。重启计算机以后,进入cmd命令窗口,检查SDK是不是安装成功。运行androidh如果有类似以下的输出,表明安装成功,如图3-2所示:图3-2 cmd命令窗口打开 Eclipse IDE,进入菜单中的 Help - Install New Software点击Add.按钮,弹出对话框要求输入Name和Location:Name自己随便取,Location输入/android/eclipse。如图3-3所示:图3-3 Add Site确定返回后,在work with后的下拉列表中选择我们刚才添加的ADT,我们会看到下面出有Developer Tools,展开它会有Android DDMS和Android Development Tool,勾选他们。如下图所示:图3-4 Install安装然后就是按提示一步一步next。完成之后:选择Window Preferences.在左边的面板选择Android,然后在右侧点击Browse.并选中SDK路径:D:AndroidDevelopandroid-sdk-windows点击Apply、OK。配置完成。3.2.4 创建AVD1.在Eclipse中。选择Windows Android SDK and AVD Manager2.点击左侧面板的Virtual Devices,再右侧点击New3.填入Name,选择Target的API,SD Card大小任意,Skin随便选,Hardware目前保持默认值4.点击Create AVD即可完成创建AVD5.点击左侧面板的Available Packages,在右侧勾选/ android/repository/repository.xml,如下图所示:图3-5 AVD Manager6.然后点击Install Selected按钮,接下来就是按提示做就行了3.3 Android四大组件android四大组件分别为activity、service、content provider、broadcast receiver。3.3.1 android四大组件详解1.activity一个Activity通常就是一个单独的屏幕(窗口)。Activity之间通过Intent进行通信。android应用中每一个Activity都必须要在AndroidManifest.xml配置文件中声明,否则系统将不识别也不执行该Activity。2.serviceservice用于在后台完成用户指定的操作。service分为两种:started(启动):当应用程序组件(如activity)调用startService()方法启动服务时,服务处于started状态。bound(绑定):当应用程序组件调用bindService()方法绑定到服务时,服务处于bound状态。startService()与bindService()区别:started service(启动服务)是由其他组件调用startService()方法启动的,这导致服务的onStartCommand()方法被调用。当服务是started状态时,其生命周期与启动它的组件无关,并且可以在后台无限期运行,即使启动服务的组件已经被销毁。因此,服务需要在完成任务后调用stopSelf()方法停止,或者由其他组件调用stopService()方法停止。使用bindService()方法启用服务,调用者与服务绑定在了一起,调用者一旦退出,服务也就终止,大有“不求同时生,必须同时死”的特点。开发人员需要在应用程序配置文件中声明全部的service,使用标签。Service通常位于后台运行,它一般不需要与用户交互,因此Service组件没有图形用户界面。Service组件需要继承Service基类。Service组件通常用于为其他组件提供后台服务或监控其他组件的运行状态。3.content providerandroid平台提供了Content Provider使一个应用程序的指定数据集提供给其他应用程序。其他应用可以通过ContentResolver类从该内容提供者中获取或存入数据。只有需要在多个应用程序间共享数据是才需要内容提供者。例如,通讯录数据被多个应用程序使用,且必须存储在一个内容提供者中。它的好处是统一数据访问方式。ContentProvider实现数据共享。ContentProvider用于保存和获取数据,并使其对所有应用程序可见。这是不同应用程序间共享数据的唯一方式,因为android没有提供所有应用共同访问的公共存储区。开发人员不会直接使用ContentProvider类的对象,大多数是通过ContentResolver对象实现对ContentProvider的操作。ContentProvider使用URI来唯一标识其数据集,这里的URI以content:/作为前缀,表示该数据由ContentProvider来管理。4.broadcast receiver你的应用可以使用它对外部事件进行过滤,只对感兴趣的外部事件(如当电话呼入时,或者数据网络可用时)进行接收并做出响应。广播接收器没有用户界面。然而,它们可以启动一个activity或serice来响应它们收到的信息,或者用NotificationManager来通知用户。通知可以用很多种方式来吸引用户的注意力,例如闪动背灯、震动、播放声音等。一般来说是在状态栏上放一个持久的图标,用户可以打开它并获取消息。广播接收者的注册有两种方法,分别是程序动态注册和AndroidManifest文件中进行静态注册。动态注册广播接收器特点是当用来注册的Activity关掉后,广播也就失效了。静态注册无需担忧广播接收器是否被关闭,只要设备是开启状态,广播接收器也是打开着的。也就是说哪怕app本身未启动,该app订阅的广播在触发时也会对它起作用。3.3.2 android四大组件总结1.四大组件的注册四大基本组件都需要注册才能使用,每个Activity、service、Content Provider都需要在AndroidManifest文件中进行配置。AndroidManifest文件中未进行声明的activity、服务以及内容提供者将不为系统所见,从而也就不可用。而broadcast receiver广播接收者的注册分静态注册(在AndroidManifest文件中进行配置)和通过代码动态创建并以调用Context.registerReceiver()的方式注册至系统。需要注意的是在AndroidManifest文件中进行配置的广播接收者会随系统的启动而一直处于活跃状态,只要接收到感兴趣的广播就会触发(即使程序未运行)。2.四大组件的激活内容提供者的激活:当接收到ContentResolver发出的请求后,内容提供者被激活。而其它三种组件activity、服务和广播接收器被一种叫做intent的异步消息所激活。3.四大组件的关闭内容提供者仅在响应ContentResolver提出请求的时候激活。而一个广播接收器仅在响应广播信息的时候激活。所以,没有必要去显式的关闭这些组件。Activity关闭:可以通过调用它的finish()方法来关闭一个activity。服务关闭:对于通过startService()方法启动的服务要调用Context.stopService()方法关闭服务,使用bindService()方法启动的服务要调用Contex.unbindService()方法关闭服务。4.android中的任务(activity栈)任务其实就是activity的栈,它由一个或多个Activity组成,共同完成一个完整的用户体验。栈底的是启动整个任务的Activity,栈顶的是当前运行的用户可以交互的Activity,当一个activity启动另外一个的时候,新的activity就被压入栈,并成为当前运行的activity。而前一个activity仍保持在栈之中。当用户按下BACK键的时候,当前activity出栈,而前一个恢复为当前运行的activity。栈中保存的其实是对象,栈中的Activity永远不会重排,只会压入或弹出。任务中的所有activity是作为一个整体进行移动的。整个的任务(即activity栈)可以移到前台,或退至后台。Android系统是一个多任务(Multi-Task)的操作系统,可以在用手机听音乐的同时,也执行其他多个程序。每多执行一个应用程序,就会多耗费一些系统内存,当同时执行的程序过多,或是关闭的程序没有正确释放掉内存,系统就会觉得越来越慢,甚至不稳定。为了解决这个问题,Android引入了一个新的机制,即生命周期(Life Cycle)。3.4 Animations动画3.4.1 Animations介绍Animations是一个实现android UI界面动画效果的API,Animations提供了一系列的动画效果,可以进行旋转、缩放、淡入淡出等,这些效果可以应用在绝大多数的控件中。3.4.2 Animations分类nimations从总体上可以分为两大类:1.Tweened Animations:该类Animations提供了旋转、移动、伸展和淡出等效果。Alpha淡入淡出,Scale缩放效果,Rotate旋转,Translate移动效果。2.Frame-by-frame Animations:这一类Animations可以创建一个Drawable序列,这些Drawable可以按照指定的时间间歇一个一个的显示。3.4.3 Animations的使用方法Animations extends Object implements Cloneable。使用TweenedAnimations的步骤:1.创建一个AnimationSet对象(Animation子类);2.增加需要创建相应的Animation对象;3.更加项目的需求,为Animation对象设置相应的数据;4.将Animatin对象添加到AnimationSet对象当中;5.使用控件对象开始执行AnimationSet。Tweened Animations的分类1.Alpha:淡入淡出效果2.Scale:缩放效果3.Rotate:旋转效果4.Translate:移动效果3.4.4 Animation的四个种类1.View Animation(Tween Animation)补间动画,给出两个关键帧,通过一些算法将给定属性值在给定的时间内在两个关键帧间渐变。View animation只能应用于View对象,而且只支持一部分属性,如支持缩放旋转而不支持背景颜色的改变。而且对于View animation,它只是改变了View对象绘制的位置,而没有改变View对象本身,比如,你有一个Button,坐标(100,100),Width:200,Height:50,而你有一个动画使其变为Width:100,Height:100,你会发现动画过程中触发按钮点击的区域仍是(100,100)-(300,150)。View Animation就是一系列View形状的变换,如大小的缩放,透明度的改变,位置的改变,动画的定义既可以用代码定义也可以用XML定义,当然,建议用XML定义。可以给一个View同时设置多个动画,比如从透明至不透明的淡入效果,与从小到大的放大效果,这些动画可以同时进行,也可以在一个完成之后开始另一个。用XML定义的动画放在/res/anim/文件夹内,XML文件的根元素可以为,interpolator元素或(表示以上几个动画的集合,set可以嵌套)。默认情况下,所有动画是同时进行的,可以通过startOffset属性设置各个动画的开始偏移(开始时间)来达到动画顺序播放的效果。可以通过设置interpolator属性改变动画渐变的方式,如AccelerateInterpolator,开始时慢,然后逐渐加快。默认为AccelerateDecelerateInterpolator。2.Drawable Animation(Frame Animation)Drawable Animation(Frame Animation):帧动画,就像GIF图片,通过一系列Drawable依次显示来模拟动画的效果。3.property Animation属性动画,这个是在Android 3.0中才引进的,以前学WPF时里面的动画机制好像就是这个,它更改的是对象的实际属性,在View Animation(Tween Animation)中,其改变的是View的绘制效果,真正的View的属性保持不变,比如无论你在对话中如何缩放Button的大小,Button的有效点击区域还是没有应用动画时的区域,其位置与大小都不变。而在Property Animation中,改变的是对象的实际属性,如Button的缩放,Button的位置与大小属性值都改变了。而且Property Animation不止可以应用于View,还可以应用于任何对象。Property Animation只是表示一个值在一段时间内的改变,当值改变时要做什么事情完全是你自己决定的。在Property Animation中,可以对动画应用以下属性:Duration:动画的持续时间TimeInterpolation:属性值的计算方式,如先快后慢TypeEvaluator:根据属性的开始、结束值与TimeInterpolation计算出的因子计算出当前时间的属性值Repeat Count and behavoir:重复次数与方式,如播放3次、5次、无限循环,可以此动画一直重复,或播放完时再反向播放Animation sets:动画集合,即可以同时对一个对象应用几个动画,这些动画可以同时播放也可以对不同动画设置不同开始偏移Frame refreash delay:多少时间刷新一次,即每隔多少时间计算一次属性值,默认为10ms,最终刷新时间还受系统进程调度与硬件的影响.4 程序设计4.1 用户界面设计用户界面是指App打开实现功能所要展示的可见的效果,主要通过Android工程中的layout中xml文件的各种空间布局来实现。4.1.1 Android布局介绍Android五大布局:1.LinearLayout线性布局线性布局是按照水平或垂直的顺序将子元素(可以是控件或布局)依次按照顺序排列,每一个元素都位于前面一个元素之后。线性布局分为两种:水平方向和垂直方向的布局。可以通过属性设置完成,这里分别通过属性android:orientation=vertical 和 android:orientation=horizontal来设置。2.TableLayout表格布局表格布局,适用于多行多列的布局格式,每个TableLayout是由多个TableRow组成,一个TableRow就表示TableLayout中的每一行,这一行可以由多个子元素组成。实际上TableLayout和TableRow都是LineLayout线性布局的子类。但是TableRow的参数android:orientation属性值固定为horizontal,且android:layout_width=MATCH_PARENT,android:layout_height=WRAP_CONTENT。所以TableRow实际是一个横向的线性布局,且所以子元素宽度和高度一致。3.RelativeLayout相对布局RelativeLayout继承于android.widget.ViewGroup,其按照子元素之间的位置关系完成布局的,作为Android系统五大布局中最灵活也是最常用的一种布局方式,非常适合于一些比较复杂的界面设计。4.FrameLayout框架布局将所有的子元素放在整个界面的左上角,后面的子元素直接覆盖前面的子元素,所以用的比较少。5.AbsoluteLayout绝对布局绝对布局中将所有的子元素通过设置android:layout_x 和 android:layout_y属性,将子元素的坐标位置固定下来,即坐标(android:layout_x, android:layout_y) ,layout_x用来表示横坐标,layout_y用来表示纵坐标。 屏幕左上角为坐标(0,0),横向往右为正方,纵向往下为正方。实际应用中,这种布局用的比较少,因为Android终端一般机型比较多,各自的屏幕大小。分辨率等可能都不一样,如果用绝对布局,可能导致在有的终端上显示不全等。4.1.2 界面布局步骤根据需求分析可以知道,应用程序应包含三个主要的用户界面,这里需要进一步分析每个用户界面中应该包括哪些显示内容。在界面设计上,主要以容易理解和使用、体验良好、符合用户使用习惯为原则。在交互上操作便利;在视觉上定制规范,维持统一;依赖于识别而不是记忆;强调实用的灵活性和有效性;提倡一致性和标准化。在软件界面的构成上,主要有引导页、选择页和主编辑页。软件提供的功能主要体现在主编辑页上。根据对用户界面显示内容的分析,绘制出用户界面的草图,如图4-1,图4-2:图4-1 选择页图2-2 主编辑页如上图所示,根据草图在eclipse中的layout文件中创建不同的xml文件,在每个xml文件中添加所需要的控件以及布局类型,排列出App所需要的样子,并且对每个按钮或者layout添加唯一id,以便在代码中添加监听时可以更方便的定位控件。4.2 概要流程设计本软件概要设计是根据用户习惯和软件工程思想进行设计,主要有以下几个流程:4.2.1引导流程引导页流程比较简单,如下图所示:图4-3 引导页流程图4.2.2 本地选择图片流程选择本地图片首先浏览所有的本地的图片文件夹,并且选择需要编辑的图片,然后进入图片编辑页;如果没有图片或者没有选择图片,则退出。流程如下图:图4-4 本地选择图片流程4.2.3 相机选择图片流程相机选择图片流程有一部分和选择本地图片流程相似,进入选择页,选择相机图片,然后调用摄像头进行拍照,如果拍照成功并保存,则进入图片编辑页,如果手机不支持相机功能或者没有拍照、拍照,则退出。流程图如下:图4-5 选择相机图片流程4.2.4 图片编辑流程进入图片编辑页以后,选择编辑区下方的“编辑”按钮,这时会出现“裁剪”、“旋转”和“缩放”、“反转”按钮。点击进入对应的编辑页面,编辑完成后,点击对勾则确定修改,点击X,则不退出编辑状态,重新进入编辑区。图4-6 编辑图片4.2.5 图片调色流程进入图片编辑页以后,选择编辑区下方的“调色”按钮,这时会出现“饱和度”、“色相”和“亮度”的拖动条。调节拖动条来改变图像。流程如下图:图4-7 调色流程图4.2.6 图片边框流程进入图片编辑页以后,选择编辑区下方的“边框”按钮,这时会出现“边框”、“涂鸦”和“特效”的按钮。边框提供三种样式,涂鸦提供三种样式,特效提供:怀旧、模糊、锐化、跌价、底片、浮雕、光照、霓虹和重叠几种。流程如下图:图4-8 边框流程图4.2.7 图片保存流程编辑完成以后,在主编辑区的左上方和右上方分别是“取消”和“保存”按钮。点击“保存”按钮,将修改后的图片保存至路径“sdcard/photoeditor”文件夹下,文件名为当前的时间。点击“取消”按钮则重新选择图片。图4-9 保存流程图5 程序设计与实现5.1 文件结构与用途在程序开发阶段,首先确定“PoE图片编辑软件”的工程名为PhotoEditor,据程序模块设计的内容,建立PhotoEditor工程。在工程中com.jacp.image包下创建四个包和三个java文件。PhotoEditor工程源代码的结构如图5-1所示。图5-1 工程的源代码文件为了使源代码文件的结构更加清晰,PoE工程设置了多个命名空间,分别用来保存用户界面、后台服务和工具实体的源代码文件。Android的java文件保存在/src的子目录中,这其中有很多包分类,包里面装着各个包名相关的类文件,其中有欢迎界面Activity,选择照片界面Activity,还有其余的各个功能的实现界面,这里列出了大概的/src文件中的目录包名文件如上图5-1所示。Android的资源文件保存在/res的子目录中。其中、/res/anim目录中保存的是产生动画效果的XML文件,/res/drawable/目录中保存的是图像文件,/res/values目录中保存的是用来自定义字符串和颜色的文件,/res/xml目录中保存的是XML格式的数据文件。所有在程序开发阶段可以被调用的资源都保存在这些目录中,具体每个资源文件的用途可以参考表5-1:表5-1 资源文件名称与用途资源目录文 件说 明animanim_down_in.xml上下反转动画前半段anim_down_out.xml上下翻转动画后半段anim_show_in.xml左右反转动画前半段anim_show_out.xml左右反转动画后半段drawableao.png这个文件夹里是工程里所用的图片,如边框、涂鸦以及菜单选项图和按钮切换效果xml文件。camera_crop.pngcloud.pngbtn_color.pnglayoutactivity_ligon.xmlApp的主界面布局文件choose.xml选择本地图片与相机的界面cropimage.xml进入后图片的保存取消界面tone.xml调整图片饱和度亮度色相界面valuescolor.xml保存颜色的XML文件strings.xml保存字符串的XML的文件xmlAndroidManifest.xmlApp的manifest的配置文件5.2 欢迎界面模块5.2.1 欢迎界面布局文件Android编写一个工程App首先要通过Android布局文件实现用户欢迎界面草图的视觉效果,例如本作品的欢迎界面效果:要现在Layout文件中添加一个RealtiveLayout布局,然后再加上必要的属性设置长宽,背景图片导入,工具类为LoginActivity,然后在Relativeyout布局中创建一个Imageview控件,导入一个图片并通过layout_centerHorizontal属性为true来设置Imageview控件在父控件中水平居中,同样设置layout_centerVertical为true使Imageview控件在负空间中垂直居中,background设置Imageview的背景图片文件在drawable文件中找到图片名称即可,继续添加一个TableLayout空间并且设置below属性后加Imageview控件ID让其显示在Imageview控件下方并且在TableLayout中添加TableRow,TableRow控件下又加入TextView控件TableRow中设置gravity值为center_horizontal表

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论