android小画家画画软件 毕业设计.doc

上传人:小小飞 文档编号:26365 上传时间:2018-10-29 格式:DOC 页数:35 大小:2.28MB
返回 下载 相关 举报
android小画家画画软件 毕业设计.doc_第1页
第1页 / 共35页
android小画家画画软件 毕业设计.doc_第2页
第2页 / 共35页
android小画家画画软件 毕业设计.doc_第3页
第3页 / 共35页
android小画家画画软件 毕业设计.doc_第4页
第4页 / 共35页
android小画家画画软件 毕业设计.doc_第5页
第5页 / 共35页
点击查看更多>>
资源描述

《android小画家画画软件 毕业设计.doc》由会员分享,可在线阅读,更多相关《android小画家画画软件 毕业设计.doc(35页珍藏版)》请在三一文库上搜索。

1、四川工商职业技术学院 0 摘要: 在21世纪的今天,手机几乎是每个人的必备品,特别是在高校的学生,不管是吃饭、 睡觉、还是上课,手机总是不离手。而且手机更新换代更是日新月异,然后在现在的手机 市场中android系统的智能机成为主流。 我们这款画画小软件正是在android系统的平台上进行运行。在日常生活中,我们画画 只能在纸上的时代已经过去,这款android小画家画画软件,可以进行简单的简笔画操作、 上色。既节约了增加了我们平时的乐趣,也节约了资源。该软件具有改变画图的形状、改 变画笔的颜色、改变画刷的宽度、改变画画的风格、以及保存、清除等功能。经过测试, 这是一款能为我们生活增加乐趣的软

2、件。 关键字:手机;android;画画软件 四川工商职业技术学院 1 目录 第一章 引言 .- 1 - 1.1发展情况 .- 1 - 1.2研究现状 .- 1 - 1.3研究前景展望 .- 1 - 1.4选题的目的及意义 .- 2 - 第二章 系统可行性分析 .- 3 - 2.1经济可行性分析 .- 3 - 2.2操作可行性分析 .- 3 - 2.3技术可行性分析 .- 3 - 2.3.1 eclipse概述 - 3 - 2.3.2 ADT 概述 .- 4 - 2.3.3 android SDK概述 - 4 - 2.3.4 java概述 .- 5 - 第三章 需求分析 .- 6 - 3.1软

3、件功能描述 .- 6 - 3.2系统功能分析 .- 7 - 3.3软件需求分析 .- 9 - 3.4软件概念结构设计 .- 9 - 第四章 软件详细设计 - 12 - 4.1软件设计原理 - 12 - 4.2软件模块设计 - 12 - 第五章 软件测试 - 30 - 总 结 - 31 - 参考文献 .- 32 - 致 谢 - 33 - 四川工商职业技术学院 - 1 - 第一章 引言 1.1发展情况 在现在这个手机普及的时代,各种手机软件也是层出不穷,尤其是在这两 年的飞速发展,android软件可以是说席卷各大手机软件网站,为android软件 开发者既带来了收入的回报,也提出了技术的挑战。a

4、ndroid系统这个平台以成 为智能手机系统的核心,也是IT技术行业、智能手机制造行业高度重视的。随 着android系统的不断更新,现在功能各方面已经非常强大,这不仅是一台手机 这么简单,而是一个移动终端。各种软件都有几乎都有android系统的版本。同 时用户现在不仅要求手机有传统手机的功能,现在必须更加具有娱乐性以及休 闲性。抓住现在用户的这个心理状态,于是android平台上运行的小画家画画软 件就运营而生了。 1.2研究现状 就目前的android系统智能手机在市场的占有率来看,对android系统手机 软件的开发具有非常广阔的前景。虽然在IT行业中都处于一个饱和的状态,但 是在an

5、droid系统手机软件开发这一方面又处于紧缺的状态,因为现在的手机用 户拿起手机不仅仅是只用来打打电话,发发短信这么简单,用户更加追求的是 手机的娱乐性和休闲性。说的更加简单明了一点就是,用户在无聊的时候可以 用手机来消遣时间。android系统自 2009年2月发布的android1.1开始已经有4年 的发展历史。然而在这短短四年时间就可以成为智能手机市场的领头羊,那么 对于我们开发android系统手机的软件,也是同样具有广阔的市场。 1.3研究前景展望 随着android系统智能手机的诞生,android系统打破了前些年智能手机的 垄断的传统市场。同时android 系统的手机软件占据的

6、手机软件市场的比例越来 越大,那么我们开发的画画涂鸦软件是基于android系统的,可以说是具有广阔 的发展前景。而且现在用户对手机软件是否具有娱乐性有非常强的选择性,用 四川工商职业技术学院 - 2 - 户对于空闲时间的消遣,还有即时聊天需要发送一个手绘涂鸦图片的需要,那 么对我们这款软件的选择是非常有用的。对于小画家手机软件具有一下优点: (1)喜爱画画的用于,无论是在车上,还是站台等车,都可以随时随地的进行 简笔画画画的操作。(2)可以将画好的图片保存通过即时聊天工具发给好朋友 分享自己的作品。(3)在手机上画可以节约资源,在环保的角度,起到节能减 排的效果。 1.4选题的目的及意义 为

7、了巩固在大学三年所学的知识,达到学以并用的目的,作为四川工商职 业技术学院信息工程系软件班大三的毕业生,希望在离开自己母校的时候能够 把自己所学的知识能够做一次全面的巩固和提高,我的选题意义如下: 随着android系统的不断升级,android系统智能手机的各种软件对各方面 的影响越来越大,并且android 系统成为以后移动智能客户终端的可能性同时也 越来越大,那么未来android系统主导智能手机市场也是必然的发展趋势。 那么我们开发的这款画画小软件也是顺应时代发展的潮流,在传统的按键 手机,我们不能做出这个灵活的画画涂鸦软件,现在我们借助android系统这个 平台来实现了这一功能。这

8、样不仅提高图片的趣味性;建立生动有趣的图片处 理平台,而且还提高手机的利用率。何乐而不为呢。 四川工商职业技术学院 - 3 - 第二章 系统可行性分析 可行性研究的目的就是用最小的代价在尽可能短的时间内确定问题是否能 够解决。可行性研究的目的不是解决问题,而是确定问题是否值得去解决。可 行性研究就是进行一次大大压缩简化了的系统分析和软件设计过程,也就是在 较高层上以抽象的方式进行系统分析和软件设计过程。 2.1经济可行性分析 在android系统各种手机软件频频被开发出来的今天,那些软件开放团队如 何进行软件的开发,以及开发出来的软件有什么特色来吸引用户,是越来越重 要的问题。而我们这个小软件

9、内容简单,开发周期短,投资小。投入运营后, 提供免费下载,然后在软件中植入广告成分,来获取利润。所以该软件为开发 团队所带来的经济效益会远远高于前期投入的资金。 2.2操作可行性分析 本软件的开发工具是eclipse-SDK-4.2.1版本,eclipse内装插件ADT- 21.0.0版本以及android SDK 2.3.3。前端开发工具是java 。这样的eclipse就是一套完整的开发工具,用于 生成后缀为apk的应用程序。之后将生成的 apk应用程序安装到手机就可以使用 了。 2.3技术可行性分析 2.3.1 eclipse概述 eclipse 是一个开放源代码的、基于Java 的可扩

10、展开发平台。就其本身而言,它只是一 个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括Java开发工具(Java Development 四川工商职业技术学院 - 4 - Kit,JDK)。 我们经常将 Eclipse 当作 Java 集成开发环境(IDE)来使用,但 Eclipse 的目标却不仅限于此。Eclipse 还包括插件开发环境( Plug-in Development Environment,PDE),这个组件主要针对希望扩展 Eclipse 的软件开发人员,因为它允许他们构建与 Eclipse 环境无缝集成的工具。由于 Ecli

11、pse 中的每样东西都是插件,对于给 Eclipse 提供插件,以及给软件开发人员提供一致和统一的集成开发环境而言,所有工 具开发人员都具有同等的发挥场所。 2.3.2 ADT 概述 Android开发工具(ADT),作为Eclipse工具插件,让其支持Android快速入 门和便捷开发,可通过Eclipse启动菜单(启动Eclipse后,选择Help-Install New Software)安装。 ADT开发工具,包括Android Dalvik Debug Moniter Server(Android DDMS)和Android Development Tools(ADT),还有Hier

12、archy Viewer和TraceView两个查看器,看名称就知道功能了。DDMS可以提供调试设备 时为设备截屏,查看线程及内存信息、Logcat、广播信息、模拟呼叫、接收短 消息、文件查看器等功能(该功能在安装完ADT之后,点击Eclipse工具栏右上 角的那个带箭头的小窗口图标弹出菜单中打开)。 Android Development Tools(ADT)工具应该是为Eclipse 支持Android项目快速编程开发和调试插件 而已。 2.3.3 android SDK概述 SDK:(software development kit)软件开发工具包。被软件开发工程师用于为特定的软件包、软

13、件框架、硬 件平台、操作系统等建立应用软件的开发工具的集合。 因此,Android SDK 指的是Android专属的软件开发工具包。 下载好Android SDK后,开始安装,Android SDK采用了 Java语言,所以需要先安装 JDK 四川工商职业技术学院 - 5 - 5.0及以上版本。直接下载jdk安装文件安装更为方便。 Android SDK不用直接安装,下载后,直接解压即可, 将下载后的SDK的压缩包解压到适当的位置,就这么简单;SDK安装OK。 2.3.4 java概述 Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由Sun Microsystems公司于1

14、995年5月推出的 Java程序设计语言和 Java平台(即JavaSE , JavaEE, JavaME)的总称。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、 数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球 最大的开发者专业社群。在全球云计算和移动互联网的产业环境下,Java更具 备了显著优势和广阔前景。 四川工商职业技术学院 - 6 - 第三章 需求分析 本设计为android系统手机上的一个画画小软件,该软件主要是在eclipse 开发工具上用java语言编写的一个结果。 eclipse 是一个开放源代码的、基于Java 的可扩展

15、开发平台。就其本身而言,它只是一 个框架和一组服务,用于通过插件组件构建开发环境。而java语言具有卓越的 通用性、高效性、平台移植性和安全性。Eclipse编辑器引入了编辑环境方面的 一些增强功能,诸如单词补齐,增量搜索,代码凸显,缩进文本,标记行号,彩 色打印,和快捷方式。eclipse 编辑器还提供了许多为特定语言设计的功能,比 如在你输入原型和函数调用的时候它能够自动完成这些字符串的输入。 生成的应用程序安装到手机后,直接点击打开,操作简单明了,软件具有 形状的选择、画笔宽度的调整、画笔颜色的改变、绘画风格的改变、整屏清除 以及保存等功能。 3.1软件功能描述 小画家画画软件主要是提供

16、给使用android系统智能手机的用户,增加业余 时间的趣味性。本软件主要有简笔画画、上色、保存等功能。 (1) 形状选择,打开软件,选择菜单键,就会弹出菜单里面的功能,选 择形状功能就可以自由的选择需要的形状,形状有轨迹线、直线 、矩形、椭圆形、圆形、点、还有橡皮擦等不同的形状。 (2) 清除,打开软件,选择菜单键,就会弹出菜单里面的功能,清除功 能就是将所绘制的整张画布全部清除。 (3) 保存,打开软件,选择菜单键,就会弹出菜单里面的功能,如果绘 画好一张满意的画,选择保存就可以将图保存在手机里面,以供 自己以后欣赏或者与朋友分享。 (4) 设置,打开软件,选择菜单键,就会弹出菜单里面的功

17、能,选择设 置,就可以进入到设置画面,设置里面有画刷宽度的调节、画笔 颜色的选择、画画风格的选择、是否是全屏模式、目前所使用的 四川工商职业技术学院 - 7 - 版本、以及可以看到最后调试的时间与快捷键和对开发者的建议 。 3.2系统功能分析 根据软件的使用情况和面向对象,本软件具备一下功能模块以及操作方式 : 功能 功能类别 子功能 setDrawing设置形状 clearCanvas清屏 saveToSdcard保存 用户管理模块 SettingsActivity设置 颜色管理模块 (color) ColorPickerDialog颜色选择 画刷大小管理模块 (size) Brush设置画

18、刷大小 菜单 用户模块 功能描述 用户进入软件并选择操作 操作序列 1,点击“形状”选择要形状,默认轨迹线。 2,点击“清除”抹掉整张画布的所有线条。 3,点击“保存”保存当前的所画的画。 4,点击“设置”进入更多的设置画面。 形状 形状管理模块 功能描述 用户选择图形形状 操作序列 1, 点击menu按钮,屏幕下方显示菜单。 四川工商职业技术学院 - 8 - 2, 点击“形状”进入形状设置。 3, 选择需要的形状就可以了。 清除 清除管理模块 功能描述 用户需要清除整个画布 操作序列 1, 点击menu按钮,屏幕下方显示菜单。 2, 点击“清除”就把整张画布清除了。 保存 保存管理模块 功能

19、描述 用户需要保存所画的画 操作序列 3, 点击menu按钮,屏幕下方显示菜单。 4, 点击“保存”就将所画的画保存下来了。 颜色 颜色管理模块 功能描述 用户选择画刷颜色 操作序列 1, 点击menu按钮,屏幕下方显示菜单。 2, 点击“设置”进入设置画面。 3, 点击“颜色”就可以选择自己喜欢的颜色了。 画刷大小 画刷大小管理模块 功能描述 用户选择画刷的大小 操作序列 1, 点击menu按钮,屏幕下方显示菜单。 2, 点击“设置”进入设置画面。 3, 点击“画刷宽度”就可以设置合适的画刷宽度了。 风格 四川工商职业技术学院 - 9 - 画画风格管理模块 功能描述 用户选择画画的风格 操作

20、序列 1, 点击menu按钮,屏幕下方显示菜单。 2, 点击“设置”进入设置画面。 3, 点击“风格”就可以设置画画的风格了。 模式 画图模式管理模块 功能描述 用户选择画图的模式 操作序列 1, 点击menu按钮,屏幕下方显示菜单。 2, 点击“设置”进入设置画面。 3, 点击“全屏模式”就可以设置画图的模式了。 3.3软件需求分析 随着社会的发展,时代的进步,人们对生活品质的不断提高,对生活的享 受心理也越来越强,越来越注重休闲娱乐。只有抓住现在人们的心理需要才能 在现在有得一席之地。同样在手机软件方面也是一样的,现在的大多数人的手 机里面占据一大部分内存的都是休闲娱乐的游戏,就是在无聊的

21、时候打发时间 的。而我们这款android小画家画图软件就是提供给那些爱画简笔画的画图爱好 者,所以,既然现在有这个需求,我们就可以满足用户的这个需要,开发这么 一款画图的软件。 3.4软件概念结构设计 这一设计阶段是在需求分析的基础上而进行的,设计出能够满足用户需求 的各种实体,以及它们之间的关系,为后面的逻辑设计打下基础。 概念结构的主要特点是: (1) 能真实、充分地反映现实世界,包括事物和事物之间的联系,能满 足用户对软件功能的要求。 四川工商职业技术学院 - 10 - (2) 易于理解,从而可以用它和不熟悉使用手机的用户交换意见,用户 的积极参与是软件开发设计成功的关键。 (3) 易

22、于更改,当应用环境和应用要求改变时,容易对概念模型修改和 扩充。 在小画家软件开发中存在系统用例、开发人员与用户、数据流程处理、数 据表述等几个对象的关系,具体描述如下面各图所示。 开发人员 系统用例图 用户信息 软件下载 软件信息 用户情况 软件升级 建议反馈 总体流程图 软件信息 软件信息 软件下载条件 软件情况 下载信息 软件信息 软件信息 下载条件 用户下载情况 用户信息 下载量信息 软件信息 下载信息 下载量信息 下载量信息 用户信息 用户信息 用户信息 下载量信息 开发 人员 用户 小 画家软 件 开发维护 软件开发 用户管理 后台数据维护 软件更新 开发人员 软件 管理 用户 用

23、户下载信息表 软件信息表 用户 管理 下载 管理 开发人员 四川工商职业技术学院 - 11 - 数据流图处理图 数据表述E-R图 用户管理表 用户 信息表 用户排行表 下载情况 下载信息表 软件 信息表 开发团 信息表 软件卸载信 息表 - 12 - 第四章 软件详细设计 4.1软件设计原理 本软件基于android系统智能手机,在android系统设备上运行,就像打开 手机播放器一样简单打开软件就可以操作。它是随着android系统手机的兴起, 借助android系统平台开发的一个软件。主要是利用不断成熟的android系统, 结合java语言与XML而产生的软件。 Java 语言具有卓越的

24、通用性、高效性、平台移植性和安全性,而可扩展标记语言XML 是用于标记电子文件使其具有结构性的标记语言,可以用来标记数据、定义数 据类型,是一种允许用户对自己的标记语言进行定义的源语言。这样开发的软 件不仅在界面上比较美观,而且可以在 android系统平台上稳定运行。 4.2软件模块设计 打开软件即可进入到画画操作界面,也可以选择各种各样的功能,利用目 前有的功能可以随心所欲的画出想要的简笔画,在选择各种各样的功能的时候 也有界面的跳转弹出和菜单功能的选择。因为现在是测试版本,不存在与互联 网连接的情况,这样对用户的私人隐私也具有绝对的安全保密,因为只是一款 画图的软件,所以我们不会访问用户

25、的手机联系人、短信、以及地理位置信息 ,同时也不需要获得手机的任何权限,只是能够运行和使用就可以了,这样给 开发团队的建议也只能发在开发团队的邮箱中。下面是软件各种界面的截图以 及部分代码。 打开软件,就如同打开音乐播放器一样简单,打开之后,就进入软件的主 界面,这就是一张画布,可以在上面随意画自己喜欢的线条。这是软件最基本 ,也是最重要的部分,在软件中首先要创建这样一个activity,才能展开其他 的功能。 首先要在手机界面创建一个这样的画布,这是我们最重要的起步,创建一 个界面activity,才能进行下一步的操作,用public公有类,因为主要是主界 面activity涉及的其他很多方

26、法的访问,设置各种功能方法的类型、初始值。 就如下所示, /* - 13 - *主要视图类 */ public class PaintPad extends View float tempX, tempY; private Bitmap bitmap = null; private Canvas paper = null; boolean isMoving = false; Drawing drawing = null; int bgcolor; Context context; 然后添加不同的功能以及设置用setDrawing 方法,设置绘画背景色的状态 为初始默认状态、绘画形状的当前状态参

27、数为默认空、屏幕上此时的信息为默 认初始状态。 /* *设置绘画形状 * param drawing * 当前绘画形状参数 */ public void setDrawing(Drawing drawing) this.drawing = drawing; public PaintPad(Context context) super(context); this.context = context; /获取屏幕上的信息 ScreenInfo screenInfo = new ScreenInfo(Activity) context); /* *创建和屏幕大小的位图 */ bitmap = Bi

28、tmap.createBitmap(screenInfo.getWidthPixels(), screenInfo.getHeightPixels(), Bitmap.Config.ARGB_8888); paper = new Canvas(this.bitmap); /设置背景颜色 - 14 - paper.drawColor(getResources().getColor(R.color.color_defau lt_bg); this.isMoving = false; 手指在屏幕上触动的时候,用private 私人方法fingerMove,会记录下所运动的轨迹或者方法所规定的形状,处

29、理手 指的动作,这是让手指在画布activity的界面处理手指所留下的坐标,将所有 坐标的点组成的线就是所画出来的图形。 private void reDraw() invalidate(); /* * 处理手指的动作。 * param x * X坐标 * param y * Y坐标 */ private void fingerUp(float x, float y) this.tempX = 0; this.tempY = 0; drawing.fingerUp(x, y, paper); this.isMoving = false; /* * 处理手指的动作 * param x * par

30、am y */ private void fingerMove(float x, float y) this.tempX = x; this.tempY = y; this.isMoving = true; drawing.fingerMove(x, y, paper); /* * 处理手指的动作 * param x - 15 - * param y */ private void fingerDown(float x, float y) this.isMoving = false; drawing.fingerDown(x, y, paper); 如果处理好一张图,需要保存,调用公用publ

31、ic方法saveBitmap,对画好 的图进行保存,这个时候,软件会检测是否有保存的介质存在,如果不存在, 就保存不了,有可能还会引起软件的崩溃;如果检测到存在保存介质,编辑图 片名字进行保存就可以,如果没有名字,软件默认给一个名字,进行保存。 /* * 检查SD卡是否可用 */ public void saveBitmap() String state = Environment.getExternalStorageState(); if (Environment.MEDIA_MOUNTED.equals(state) saveToSdcard(); else if (Environment

32、.MEDIA_MOUNTED_READ_ONLY.equals(state) Toast.makeText(this.context, getResources().getString(R.string.tip_sdcard_is_read_only), Toast.LENGTH_LONG).show(); else Toast.makeText( this.context, getResources().getString( R.string.tip_sdcard_is_not_available), Toast.LENGTH_LONG).show(); public void change

33、BgColor(int color) this.paper.drawColor(color); this.reDraw(); 当检查到储存介质是存在的,即私人的private - 16 - 方法saveToSdcard来执行,在SD卡中创建属于软件的保存文件夹,访问路径由 “/”符号来分开,保存时间为系统时间,保存的图片格式为“.png“格式,最后 就是将图片进行储存。 /* * 保存位图在SD卡上 */ private void saveToSdcard() File sdcard_path = Environment.getExternalStorageDirectory(); Strin

34、g myFloder = getResources().getString( R.string.folder_name_in_sdcard); File paintpad = new File(sdcard_path + “/“ + myFloder + “/“); try if (!paintpad.exists() paintpad.mkdirs(); catch (Exception e) e.printStackTrace(); String timeStamp = (DateFormat.format(“yyyy.MM.dd.hh.mm.ss“, new java.util.Date

35、().toString(); String suffixName = “.png“; String fullPath = “; fullPath = sdcard_path + “/“ + myFloder + “/“ + timeStamp + suffixName; try Toast.makeText(this.context, getResources().getString(R.string.tip_save_to) + fullPath, Toast.LENGTH_LONG).show(); press(Bitmap.CompressFormat.PNG, 100, new Fil

36、eOutputStream(fullPath); catch (FileNotFoundException e) Toast.makeText( - 17 - this.context, getResources().getString(R.string.tip_sava_failed) + fullPath, Toast.LENGTH_LONG).show(); e.printStackTrace(); 利用软件就可以画出你想要的简笔画,比如像菠萝一样的水果,哆啦A梦一 样的卡通人物,还有很多很多,只要你想的到的都可以利用它画出来。创建的 界面如图1所示,画出的菠萝如图 2所示,画出的哆啦A

37、梦如图所示。 图1,打开软件 图 2,用画笔画菠萝 - 18 - 图3,用画笔画哆啦A梦 只有画画远远不是我们要的要的功能,当然还有几乎所有软件都具备的一 个功能,设置。菜单中含有形状、清除、保存、设置。进入设置,有很多关于 画画的各种功能。画笔的宽度pen_width为默认初始宽度,画笔的颜色pen_colo r为默认颜色,画布的颜色为空即是白色,画画的风格为初始默认状态,以下是 进入设置的部分代码。图4是菜单现实设置的界面。图5是进入设置之后的界面 ,有画刷宽度、颜色等功能的选择。 import java.text.SimpleDateFormat; import java.util.zi

38、p.ZipEntry; import java.util.zip.ZipFile; import org.vhow.paintpad.R; import org.vhow.paintpad.helper.ColorPickerDialog; import org.vhow.paintpad.tools.Brush; import android.content.DialogInterface; import android.content.SharedPreferences; import android.content.pm.ApplicationInfo; import android.c

39、ontent.pm.PackageManager.NameNotFoundException; import android.os.Bundle; import android.preference.CheckBoxPreference; import android.preference.Preference; import android.preference.Preference.OnPreferenceClickListener; import android.preference.PreferenceActivity; /* *当用户选择设置按钮,就跳转到这个activity。 *当

40、用户点击的时候、实现OnPreferenceClickListener接口。 *优先调用onPreferenceClick()。 */ public class SettingsActivity extends PreferenceActivity - 19 - implements OnPreferenceClickListener, ColorPickerDialog.OnColorChangedListener SharedPreferences prefs = null; Preference pen_width = null; Preference pen_color = null;

41、 Preference canvas_bg_color = null; String pen_width_key; String pen_color_key; CheckBoxPreference pen_style = null; Preference versionName; Preference lastBuildTime; Override protected void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState); /* *XML对这个activity的虚拟设置 */ addPrefere

42、ncesFromResource(R.xml.settings); pen_width_key = getResources().getString(R.string.pen_width_key); pen_color_key = getResources().getString(R.string.pen_color_key); /* *找到要处理的对象。 */ pen_width = (Preference) findPreference(getResources().getString( R.string.pen_width_key); pen_color = (Preference) f

43、indPreference(getString(R.string.pen_color_key); versionName = (Preference) findPreference(getString(R.string.setting_about_version_key); lastBuildTime = (Preference) findPreference(getString(R.string.setting_about_build_key); versionName.setSummary(getVersionName(); lastBuildTime.setSummary(getLast

44、BuiltTime(); - 20 - /* *注册监听器。包含画刷宽度,画刷颜色。 */ pen_width.setOnPreferenceClickListener(this); pen_color.setOnPreferenceClickListener(this); private String getLastBuiltTime() String lastBuiltTimeString = “Unknown“; try ApplicationInfo ai = getPackageManager().getApplicationInfo( getPackageName(), 0); Z

45、ipFile zf = new ZipFile(ai.sourceDir); ZipEntry ze = zf.getEntry(“classes.dex“); long time = ze.getTime(); lastBuiltTimeString = new SimpleDateFormat(“yyyy-MM- dd HH:mm:ss“) .format(new java.util.Date(time); catch (Exception e) /最后编译时间是“未知”. return lastBuiltTimeString; private String getVersionName(

46、) String versionName = “Unknown“; try versionName = this.getPackageManager().getPackageInfo( getPackageName(), 0).versionName; catch (NameNotFoundException e) /最后的版本名是“未知”。 return versionName; /* - 21 - * 处理该事件的优先权 */ public boolean onPreferenceClick(Preference preference) if (preference.getKey().eq

47、uals(pen_color_key) String str = getResources().getString(R.string.tip_choose_color); new ColorPickerDialog(this, this, Brush.getPen().getColor(), str) .show(); else if (preference.getKey().equals(pen_width_key) showSetBrushWidthDialog(); return true; /* *弹出一个对话框SeekBar以控制画笔的宽度 */ private void showS

48、etBrushWidthDialog() SeekBarDialog seekBarDialog = new SeekBarDialog(this); seekBarDialog.setTitle(Brush.getPen().getStrokeWidth() + “ 像素“); seekBarDialog.setButton( getResources().getString(R.string.alert_dialog_ok), new DialogInterface.OnClickListener() public void onClick(DialogInterface dialog,

49、int whichButton) dialog.dismiss(); ); seekBarDialog.show(); /* *当画刷颜色改变时,这个方法将被调用。 */ public void colorChanged(int color) - 22 - Brush pen = Brush.getPen(); pen.setColor(color); 图4,打开菜单键 图5,打开菜单中的设置 当在菜单中选择形状之后,就会弹出形状的界面,在形状界面有很多形状 供选择,下面可以有几个形状的源代码。当选择需要形状之后就进入到画布, 画出的图形就会是选择到的形状。 直线代码如下: import org.vhow.paintpad.tools.Brush; import android.graphics.Canvas; /* *直线。 */ - 23 - public class

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

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1