




已阅读5页,还剩25页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
软件开发毕业设计范文软件开发毕业设计范文 android系统这个平台以成为智能手机系统的核心 也是IT技术行业 智能手机制造行业高度重视的 随着android系统的不断更新 现在功能各方面已经非常强大 这不 仅是一台手机这么简单 而是一个移动终端 各种软件都有几乎都有android系统的版本 同时用户现在不仅要求手机有传统手机的功能 现在必须更加具有 娱乐性以及休闲性 抓住现在用户的这个心理状态 于是android平台上运行的小画家画 画软件就运营而生了 1 2研究现状就目前的android系统智能手机在市场的占有率来看 对android系统手机软件的开发具有非常广阔的前景 虽然在IT行业中都处于一个饱和的状态 但是在android系统手机软 件开发这一方面又处于紧缺的状态 因为现在的手机用户拿起手机 不仅仅是只用来打打电话 发发短信这么简单 用户更加追求的是 手机的娱乐性和休闲性 说的更加简单明了一点就是 用户在无聊的时候可以用手机来消遣 时间 android系统自xx年2月发布的android1 1开始已经有4年的发展历史 然而在这短短四年时间就可以成为智能手机市场的领头羊 那么对 于我们开发android系统手机的软件 也是同样具有广阔的市场 1 3研究前景展望随着android系统智能手机的诞生 android系统打 破了前些年智能手机的垄断的传统市场 同时android系统的手机软件占据的手机软件市场的比例越来越大 那么我们开发的画画涂鸦软件是基于android系统的 可以说是具有 广阔的发展前景 而且现在用户对手机软件是否具有娱乐性有非常强的选择性 用户 四川工商职业技术学院对于空闲时间的消遣 还有即时聊天需要发 送一个手绘涂鸦图片的需要 那么对我们这款软件的选择是非常有 用的 对于小画家手机软件具有一下优点 1 喜爱画画的用于 无论是在车上 还是站台等车 都可以随时 随地的进行简笔画画画的操作 2 可以将画好的图片保存通过即时聊天工具发给好朋友分享自己 的作品 3 在手机上画可以节约资源 在环保的角度 起到节能减排的效 果 1 4选题的目的及意义为了巩固在大学三年所学的知识 达到学以并 用的目的 作为四川工商职业技术学院信息工程系软件班大三的毕 业生 希望在离开自己母校的时候能够把自己所学的知识能够做一 次全面的巩固和提高 我的选题意义如下随着android系统的不断升 级 android系统智能手机的各种软件对各方面的影响越来越大 并 且android系统成为以后移动智能客户终端的可能性同时也越来越大 那么未来android系统主导智能手机市场也是必然的发展趋势 那么我们开发的这款画画小软件也是顺应时代发展的潮流 在传统 的按键手机 我们不能做出这个灵活的画画涂鸦软件 现在我们借 助android系统这个平台来实现了这一功能 这样不仅提高图片的趣味性 建立生动有趣的图片处理平台 而且 还提高手机的利用率 何乐而不为呢 四川工商职业技术学院第二章系统可行性分析可行性研究的目的就 是用最小的代价在尽可能短的时间内确定问题是否能够解决 可行性研究的目的不是解决问题 而是确定问题是否值得去解决 可行性研究就是进行一次大大压缩简化了的系统分析和软件设计过 程 也就是在较高层上以抽象的方式进行系统分析和软件设计过程 2 1经济可行性分析在android系统各种手机软件频频被开发出来的 今天 那些软件开放团队如何进行软件的开发 以及开发出来的软 件有什么特色来吸引用户 是越来越重要的问题 而我们这个小软件内容简单 开发周期短 投资小 投入运营后 提供下载 然后在软件中植入广告成分 来获取利润 所以该软件为开发团队所带来的经济效益会远远高于前期投入的资 金 2 2操作可行性分析本软件的开发工具是eclipse SDK 4 2 1版本 eclipse内装插件ADT 21 0 0版本以及android SDK2 3 3 前端开发工具是java 这样的eclipse就是一套完整的开发工具 用于生成后缀为apk的应 用程序 之后将生成的apk应用程序安装到手机就可以使用了 2 3技术可行性分析2 3 1eclipse概述eclipse是一个开放源代码的 基于Java的可扩展开发平台 就其本身而言 它只是一个框架和一组服务 用于通过插件组件构 建开发环境 幸运的是 Eclipse附带了一个标准的插件集 包括Java开发工具 Java DevelopmentKit JDK 我们经常将Eclipse当作Java集成开发环境 IDE 来使用 但Eclip se四川工商职业技术学院的目标却不仅限于此 Eclipse还包括插件开发环境 Plug in DevelopmentEnvironment PDE 这个组件主要针对希望扩展Ecli pse的软件开发人员 因为它允许他们构建与Eclipse环境无缝集成 的工具 由于Eclipse中的每样东西都是插件 对于给Eclipse提供插件 以 及给软件开发人员提供一致和统一的集成开发环境而言 所有工具 开发人员都具有同等的发挥场所 2 3 2ADT概述Android开发工具 ADT 作为Eclipse工具插件 让其 支持Android快速入门和便捷开发 可通过Eclipse启动菜单 启动E clipse后 选择Help Install NewSoftware 安装 ADT开发工具 包括Android DalvikDebug MoniterServer Android DDMS 和Android DevelopmentTools ADT 还有Hierarchy Viewer和TraceView两个查看器 看名称就知道功能了 DDMS可以提供调试设备时为设备截屏 查看线程及内存信息 Logca t 广播信息 模拟呼叫 接收短消息 文件查看器等功能 该功能 在安装完ADT之后 点击Eclipse工具栏右上角的那个带箭头的小窗 口图标弹出菜单中打开 Android DevelopmentTools ADT 工具应该是为Eclipse支持Android项目快 速编程开发和调试插件而已 2 3 3android SDK概述SDK software developmentkit 软件开发工具包 被软件开发工程师用于为特定的软件包 软件框架 硬件平台 操 作系统等建立应用软件的开发工具的集合 因此 Android SDK指的是Android专属的软件开发工具包 下载好Android SDK后 开始安装 Android SDK采用了Java语言 所以需要先安装JDK5 0及以上版本 直接下载jdk安装文件安装更为方便 Android SDK不用直接安装 下载后 直接解压即可 将下载后的SDK的压缩 包解压到适当的位置 就这么简单 SDK安装OK 四川工商职业技术学院2 3 4java概述Java是一种可以撰写跨平台应 用软件的面向对象的程序设计语言 是由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台 即JavaSE JavaEE JavaME 的总称 Java技术具有卓越的通用性 高效性 平台移植性和安全性 广泛 应用于个人PC 数据中心 游戏控制台 科学超级计算机 移动电 话和互联网 同时拥有全球最大的开发者专业社群 在全球云计算和移动互联网的产业环境下 Java更具备了显著优势 和广阔前景 四川工商职业技术学院第三章需求分析本设计为android系统手机上 的一个画画小软件 该软件主要是在eclipse开发工具上用java语言 编写的一个结果 eclipse是一个开放源代码的 基于Java的可扩展开发平台 就其本身而言 它只是一个框架和一组服务 用于通过插件组件构 建开发环境 而java语言具有卓越的通用性 高效性 平台移植性和安全性 Eclipse器引入了环境方面的一些增强功能 诸如单词补齐 增量搜 索 代码凸显 缩进文本 标记行号 彩色打印 和快捷方式 eclipse器还提供了许多为特定语言设计的功能 比如在你输入原型 和函数调用的时候它能够自动完成这些字符串的输入 生成的应用程序安装到手机后 直接点击打开 操作简单明了 软 件具有形状的选择 画笔宽度的调整 画笔颜色的改变 绘画风格 的改变 整屏清除以及保存等功能 3 1软件功能描述小画家画画软件主要是提供给使用android系统智 能手机的用户 增加业余时间的趣味性 本软件主要有简笔画画 上色 保存等功能 1 形状选择 打开软件 选择菜单键 就会弹出菜单里面的功能 选择形状功能就可以自由的选择需要的形状 形状有轨迹线 直 线 矩形 椭圆形 圆形 点 还有橡皮擦等不同的形状 2 清除 打开软件 选择菜单键 就会弹出菜单里面的功能 清 除功能就是将所绘制的整张画布全部清除 3 保存 打开软件 选择菜单键 就会弹出菜单里面的功能 如 果绘画好一张满意的画 选择保存就可以将图保存在手机里面 以 供自己以后欣赏或者与朋友分享 4 设置 打开软件 选择菜单键 就会弹出菜单里面的功能 选 择设置 就可以进入到设置画面 设置里面有画刷宽度的调节 画 笔颜色的选择 画画风格的选择 是否是全屏模式 目前所使用的 版本 四川工商职业技术学院以及可以看到最后调试的时间与快捷 键和对开发者的建议 3 2系统功能分析根据软件的使用情况和面向对象 本软件具备一下 功能模块以及操作方式功能功能类别子功能用户管理模块setDrawin g设置形状clearCanvas清屏saveToSdcard保存SettingsActivity设 置颜色管理模块 color ColorPickerDialog颜色选择画刷大小管 理模块 size Brush设置画刷大小菜单用户模块功能描述用户进入 软件并选择操作操作序列1 点击 形状 选择要形状 默认轨迹线 2 点击 清除 抹掉整张画布的所有线条 3 点击 保存 保存当前的所画的画 4 点击 设置 进入更多的设置画面 形状形状管理模块功能描述用户选择图形形状操作序列1 点击menu 按钮 屏幕下方显示菜单 2 点击 形状 进入形状设置 3 选择需要的形状就可以了 四川工商职业技术学院清除清除管理模块功能描述用户需要清除整 个画布操作序列1 点击menu按钮 屏幕下方显示菜单 2 点击 清除 就把整张画布清除了 保存保存管理模块功能描述用户需要保存所画的画操作序列3 点击 menu按钮 屏幕下方显示菜单 4 点击 保存 就将所画的画保存下来了 颜色颜色管理模块功能描述用户选择画刷颜色操作序列1 点击menu 按钮 屏幕下方显示菜单 2 点击 设置 进入设置画面 3 点击 颜色 就可以选择自己喜欢的颜色了 画刷大小画刷大小管理模块功能描述用户选择画刷的大小操作序列1 点击menu按钮 屏幕下方显示菜单 2 点击 设置 进入设置画面 3 点击 画刷宽度 就可以设置合适的画刷宽度了 风格画画风格管理模块功能描述用户选择画画的风格四川工商职业 技术学院操作序列1 点击menu按钮 屏幕下方显示菜单 2 点击 设置 进入设置画面 3 点击 风格 就可以设置画画的风格了 模式画图模式管理模块功能描述用户选择画图的模式操作序列1 点 击menu按钮 屏幕下方显示菜单 2 点击 设置 进入设置画面 3 点击 全屏模式 就可以设置画图的模式了 3 3软件需求分析随着社会的发展 时代的进步 人们对生活品质的 不断提高 对生活的享受心理也越来越强 越来越注重休闲娱乐 只有抓住现在人们的心理需要才能在现在有得一席之地 同样在手机软件方面也是一样的 现在的大多数人的手机里面占据 一大部分内存的都是休闲娱乐的游戏 就是在无聊的时候打发时间 的 而我们这款android小画家画图软件就是提供给那些爱画简笔画的画 图爱好者 所以 既然现在有这个需求 我们就可以满足用户的这 个需要 开发这么一款画图的软件 3 4软件概念结构设计这一设计阶段是在需求分析的基础上而进行的 设计出能够满足用户需求的各种实体 以及它们之间的关系 为 后面的逻辑设计打下基础 概念结构的主要特点是 1 能真实 充分地反映现实世界 包括事物和事物之间的联系 能满足用户对软件功能的要求 2 易于理解 从而可以用它和不熟悉使用手机的用户交换意见 用户的积极参与是软件开发设计成功的关键 3 易于更改 当应用环境和应用要求改变时 容易对概念模型修 改和四川工商职业技术学院扩充 在小画家软件开发中存在系统用例 开发人员与用户 数据流程处 理 数据表述等几个对象的关系 具体描述如下面各图所示 开发人员系统用例图用户信息软件下载软件信息用户情况软件升级 建议反馈总体流程图软件信息软件信息软件下载条件软件情况下载 信息软件信息软件信息下载条件用户下载情况用户信息下载量信息 软件信息下载信息下载量信息下载量信息用户信息用户信息用户信 息下载量信息数据流图处理图开发人员用户小画家软件开发维护软 件开发用户管理后台数据维护软件更新开发人员软件管理用户用户 下载信息表软件信息表用户管理下载管理用户管理表开发人员四川 工商职业技术学院数据表述E R图用户信息表用户排行表下载情况下载信息表软件信息表开发团信 息表软件卸载信息表四川工商职业技术学院第四章软件详细设计4 1 软件设计原理第四章软件详细设计4 1软件设计原理本软件基于andr oid系统智能手机 在android系统设备上运行 就像打开手机播放 器一样简单打开软件就可以操作 它是随着android系统手机的兴起 借助android系统平台开发的一 个软件 主要是利用不断成熟的android系统 结合java语言与XML而产生的 软件 Java语言具有卓越的通用性 高效性 平台移植性和安全性 而可扩 展标记语言XML是用于标记电子文件使其具有结构性的标记语言 可 以用来标记数据 定义数据类型 是一种允许用户对自己的标记语 言进行定义的源语言 这样开发的软件不仅在界面上比较美观 而且可以在android系统平 台上稳定运行 4 2软件模块设计打开软件即可进入到画画操作界面 也可以选择各 种各样的功能 利用目前有的功能可以随心所欲的画出想要的简笔 画 在选择各种各样的功能的时候也有界面的跳转弹出和菜单功能 的选择 因为现在是测试版本 不存在与互联网连接的情况 这样对用户的 私人隐私也具有绝对的安全保密 因为只是一款画图的软件 所以 我们不会访问用户的手机联系人 短信 以及地理位置信息 同时 也不需要获得手机的任何权限 只是能够运行和使用就可以了 这 样给开发团队的建议也只能发在开发团队的邮箱中 下面是软件各种界面的截图以及部分代码 打开软件 就如同打开音乐播放器一样简单 打开之后 就进入软 件的主界面 这就是一张画布 可以在上面随意画自己喜欢的线条 这是软件最基本 也是最重要的部分 在软件中首先要创建这样一 个activity 才能展开其他的功能 首先要在手机界面创建一个这样的画布 这是我们最重要的起步 创建一个界面activity 才能进行下一步的操作 用public公有类 因为主要是主界面activity涉及的其他很多方法的访问 设置各 种功能方法的类型 初始值 就如下所示 主要视图类四川工商职业技术学院 public classPaintPad extends View float tempX tempY private Bitmapbitmap null private Canvaspaper null boolean isMoving false Drawing drawing null int bgcolor Context context 然后添加不同的功能以及设置用setDrawing方法 设置绘 画背景色的状态为初始默认状态 绘画形状的当前状态参数为默认 空 屏幕上此时的信息为默认初始状态 设置绘画形状 param drawing 当前绘画形状参数 public voidsetDrawing Drawing drawing this drawing drawing public PaintPad Context context super context this context context 获取屏幕上的 信息ScreenInfo screenInfo new ScreenInfo Activity context 创建和屏幕大小的位图 bit map Bitmap createBitmap screenInfo getWidthPixels screenI nfo getHeightPixels Bitmap Config ARGB 8888 paper new Canvas this bitmap 设置背景颜色paper drawColor getResour ces getColor R color color default bg 四川工商职业技术 学院this isMoving false 手指在屏幕上触动的时候 用private 私人方法fingerMove 会记录下所运动的轨迹或者方法所规定的形 状 处理手指的动作 这是让手指在画布activity的界面处理手指 所留下的坐标 将所有坐标的点组成的线就是所画出来的图形 private voidreDraw 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 th is isMoving false 处理手指的动作 param x param y private void fingerMove float x float y this tempX x this tempY y this isMoving true drawing fin gerMove x y paper 处理手指的动作 param x param y private void fingerDown float x float y this isMoving false 四川工商职业技术学院drawing fingerDo wn x y paper 如果处理好一张图 需要保存 调用公用public方 法saveBitmap 对画好的图进行保存 这个时候 软件会检测是否 有保存的介质存在 如果不存在 就保存不了 有可能还会引起软 件的崩溃 如果检测到存在保存介质 图片名字进行保存就可以 如果没有名字 软件默认给一个名字 进行保存 检查SD卡是否可用 public voidsaveBitmap String state Environment getExternalStorageState if Environment MEDIA MOUNTED equals state saveToSdcard else if Environment MEDIA MOUNTED READ ONLY equals state Toast makeText this context getResources getString R string ti p sdcard is read only Toast LENGTH LONG show else Toas t makeText this context getResources getString R string t ip sdcard is not available Toast LENGTH LONG show pub lic voidchangeBgColor int color this paper drawColor color this reDraw 当检查到 储存介质是存在的 即私人的private方法saveToSdcard来执行 在 SD卡中创建属于软件的保存文件夹 访问路径由 符号来分开 保存时间为系统时间 保存的图片格式为 png 格式 最后就是将 图片进行储存 保存位图在SD卡上 四川工商职业技术学院private voidsaveToSdcard File sdcard path Environment getExternalStorageDirectory Strin g myFloder getResources getString R string folder name in s dcard 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 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 bitmap press Bitmap CompressFormat PNG 100 new FileOutputStream fullPath catch FileNotFoundException e Toast makeText this context getResources getString R s tring tip sava failed fullPath Toast LENGTH LONG show e printStackTrace 四川工商职业技术学院利用软件就可以画出 你想要的简笔画 比如像菠萝一样的水果 哆啦A梦一样的卡通人物 还有很多很多 只要你想的到的都可以利用它画出来 创建的界面如图1所示 画出的菠萝如图2所示 画出的哆啦A梦如图 所示 图1 打开软件图2 用画笔画菠萝图3 用画笔画哆啦A梦只有画画 远远不是我们要的要的功能 当然还有几乎所有软件都具备的一个 功能 设置 菜单中含有形状 清除 保存 设置 进入设置 有很多关于画画四川工商职业技术学院的各种功能 画笔的宽度pen width为默认初始宽度 画笔的颜色pen color为默 认颜色 画布的颜色为空即是白色 画画的风格为初始默认状态 以下是进入设置的部分代码 图4是菜单现实设置的界面 图5是进入设置之后的界面 有画刷宽度 颜色等功能的选择 import java text SimpleDateFormat import java util zip 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 content pm PackageManager NameNotFoundException imp ort android os Bundle import android preference CheckBoxPreference import android preference Preference import android preference Preference OnPreferenceClickListener imp ort android preference PreferenceActivity 当用户选择设置按 钮 就跳转到这个activity 当用户点击的时候 实现OnPreferenceClickListener接口 优先调用onPreferenceClick public classSettingsActivity extendsPreferenceActivity implementsOnPreferenceClickListener ColorPickerDialog OnCol orChangedListener SharedPreferences prefs null Preference pen width null Preference pen color null Preference canvas bg color null String pen width key String pen color key CheckBoxPreference pen style null Preference versionName Preference lastBuildTime Override protectedvoid onCreate Bundle savedInstanceState super onCreate savedInstanceState 四川 工商职业技术学院 XML对这个activity的虚拟设置 addPrefere ncesFromResource R xml settings pen width key getResources getString R string pen width key pen color key getResou rces getString R string pen color key 找到要处理的对 象 pen width Preference findPreference getResources getSt ring R string pen width key pen color Preference findPre ference getString R string pen color key versionName Pre ference findPreference getString R string setting about ver sion key lastBuildTime Preference findPreference getStri ng R string setting about build key versionName setSummar y getVersionName lastBuildTime setSummary getLastBuiltTi me 注册监听器 包含画刷宽度 画刷颜色 pen width setOnPreferenceClickListener this pen color se tOnPreferenceClickListener this private StringgetLastBuiltTime String lastBuiltTimeString Unknown try ApplicationInfo ai getPackageManager getApplicationInfo getPackageName 0 ZipFile zf new ZipFile ai sourceDir ZipEntry ze zf getEntry classes dex long time ze getTime 四川工商职业技术学院lastBuiltTimeString n ew SimpleDateFormat yyyy MM dd HH mm ss format new java util Date time catch Exception e 最后编译时间是 return lastBuiltTimeString private StringgetVersionName String versionName Unknown try versionName this getPackageManage r getPackageInfo getPackageName 0 versionName catch N ameNotFoundException e 最后的版本名是 return versionName 处理该事件的优先权 public booleanonPreferenceClick Preference preference if preference getKey equals pen color key S tring 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 showSetBrushW idthDialog return true 四川工商职业技术学院 弹出一个对话框SeekBar以控制画 笔的宽度 private voidshowSetBrushWidthDialog SeekBarDialog seekBarDialog new SeekBarDialog this seekBarDialog setTitle Brush getPen g etStrokeWidth 像素 seekBarDialog setButton getResource s getString R string alert dialog ok new DialogInterface OnClickListener public voidonClick DialogInterface dialog int whichButton dialog dismiss seekBarDialog show 当画刷颜色改变时 这个方法将被调用 public void colorChanged int color Brush pen Brush getPen pen setColor color 图4 打开菜单键四 川工商职业技术学院图5 打开菜单中的设置当在菜单中选择形状之 后 就会弹出形状的界面 在形状界面有很多形状供选择 下面可 以有几个形状的源代码 当选择需要形状之后就进入到画布 画出的图形就会是选择到的形 状 直线代码如下 import org vhow paintpad tools Brush import android graphics Canvas 直线 public classStraightLine extendsDrawing Override public void draw Canvas canvas canvas drawLine this startX this startY this stopX this stopY Brush getPen 矩形代码如下import org vhow paintpad tools Brush import android graphics Canvas 矩形 public classRect extendsDrawing Override四川工商职业技术学院public void draw Canvas canvas canvas drawRect this startX this startY this stopX this stopY Brush getPen 轨迹线代码如下 import org vhow paintpad tools Brush import android graphics Canvas import android graphics Path 跟踪手指在屏幕上运动 public classPathLine extendsDrawing Path mPath null private floatmX mY private staticfinal floatTOUCH TOLERANCE 4 public PathLine mPath new Path Override publicvoiddraw Canvas canvas canvas drawPath this mPath Brush getPen Overri de publicvoidfingerDown float x float y Canvas canvas mPath reset mPath moveTo x y this mX x this mY y Override publicvoidfingerMove float x float y Canvas canvas float dx Math abs x mX float dy Math abs y mY if dx TOUCH TOLERANCE dy TOUCH TOLERANCE mPath quad To mX mY x mX 2 y mY 2 四川工商职业技术学院mX x mY y this draw canvas Override publicvoidfingerUp float x float y Canvas canvas mPath lineTo mX mY this draw canvas mPath reset 图6 打开菜单中的形状功能在设置中就可以进行颜色选择 颜 色的设置用public公有类ColorPickerDialog进行设置 定义颜色改 变的方法colorChanged 下面是颜色设置的代码 图7是进入到颜色 设置的界面 import android app Dialog import android content Context import android graphics Canvas import android graphics Color import android graphics Paint import android graphics RectF import android graphics Shader import android graphics SweepGradient import android os Bundle import android view MotionEvent import android view View public classColorPickerDialog extendsDialog 四川工商职业技术学院String title public interfaceOnColorChangedListener voidcolorChanged int color private OnColorChangedListenermListener private intmInitialColor private statilass ColorPickerViewextendsView private PaintmPaint private PaintmCenterPaint private final int mColors private OnColorChangedListenermListener ColorPickerView Context c OnColorChangedListener l int color super c mListener l mColors new int 0 xFFFF0000 0 xFFFF00FF 0 xFF0000FF 0 xFF00FFFF 0 xFF00FF0 0 0 xFFFFFF00 0 xFFFF0000 Shader s new SweepGradient 0 0 mColors null mPaint new Paint Paint ANTI ALIAS FLAG mPaint setShader s mPaint set Style Paint Style STROKE mPaint setStrokeWidth 32 mCenterPaint new Paint Paint ANTI ALIAS FLAG mCenterPaint setColor color m CenterPaint setStrokeWidth 5 private booleanmTrackingCenter private booleanmHighlightCenter Override protectedvoid onDraw Canvas canvas float r CENTER X mPaint getStrokeWidth 0 5f canvas translate CENTER X CENT ER X canvas drawOval new RectF r r r r mPaint canvas drawCircle 0 0 CENTER RADIUS mCenterP aint if mTrackingCenter int c mCenterPaint getColor mCenterPaint setStyle Paint Style STROKE if mHighlightCenter 四川工商职业技术学院mCenterPa int setAlpha 0 xFF else mCenterPaint setAlpha 0 x80 canva s drawCircle 0 0 CENTER RADIUS mCenterPaint getStrokeWidth mCenterPaint mCenterPaint setStyle Paint Style FILL mCe nterPaint setColor c Override protectedvoid onMeasure int widthMeasureSpec int heightMeasureSpec setMeasuredDimension CENTER X 2 CENTER Y 2 private staticfinal intCENTER X 100 private staticfinal intCENTER Y 100 private staticfinalintCENTER RADIUS 32 private int ave int s int d float p return s java lang Math round p d s private int interpColor int colors float unit if unit 1 return colors colors length 1 float p unit colors length 1 inti int p p i now pis justthe fractionalpart 0 1 and iis theindex int c0 colors i intc1 colors i 1 inta ave Color alpha c0 Col or alpha c1 p 四川工商职业技术学院int r ave Color red c0 Color red c1 p int g ave Color green c0 Color green c1 p int b ave Color blue c0 Color blue c1 p return Color argb a r g b private staticfinal floatPI 3 1415926f Override publicboolean onTouchEvent MotionEvent event float x event getX CENTER X float y event getY CENTER Y boolean inCenter java lang Math sqrt x x y y CENTER RADIUS switch event getAction case MotionEvent ACTION DOWN mTrackingCenter inCenter if inCente r mHighlightCenter true invalidate break case MotionEvent ACTION MOVE if mTrackingCenter if mHighlightCe nter inCenter mHighlightCenter inCenter invalidate el se float angle float java lang Math atan2 y x need toturn angle PI PI into unit 0 1 float unit angle 2 PI if unit 0 unit 1 mCenterPaint setColor interpColor mColors 四川工商职业技术学院unit invalidate break case MotionEvent ACTION UP if mTrackingCenter if inCenter mLis tener colorChanged mCenterPaint getColor mTrackingCente r false so wedraw w o haloinvalidate break return true public ColorPickerDialog Context context OnColorChangedListener listener int initialColor String str super context mListener listener mInitialColor initia lColor title str Override protectedvoid onCreate Bundle savedInstanceState super onCreate savedInstanceState OnCo lorChangedListener l new OnColorChangedListener publicvoidcolorChanged int color mListener colorChanged color dismiss setConten tView new ColorPickerView getContext l mInitialColor setTitle tit le 四川工商职业技术学院 图7 打开设置中的颜色选项四川工商 职业技术学院第五章软件测试软件测试是把各个功能模块
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 麻醉中级考试试题及答案解析
- 2025实习生劳动合同范本
- 空间通信与信息伦理-洞察及研究
- 2025【合同范本】标准农产品交易合同模板
- 2025【合同范本】农村个人果园承包合同
- 社交电商生态-洞察及研究
- 反渗透膜清洗工艺原理演示2讲课文档
- 2025合作伙伴激励计划招标投标合同管理与执行服务招标投标合同(投标银行担保书)
- 2025二手房屋买卖合同范本官方版
- 2025物业公司物业管理服务合同范本
- 2025-2026学年度第一学期小学数学教研组工作计划
- 2025年携程笔试试题及答案
- 田径竞赛规则修改(2025-2026)
- 铭记历史+砥砺前行-2025-2026学年高一上学期抗战胜利80周年爱国教育主题班会
- 基孔肯雅热主题班会课件
- 学校食品供货协议书范本
- 《通信原理》课件第1讲通信概述
- 2025-2026学年冀人版三年级科学上册(全册)教学设计(附目录)
- 2025年部编版三年级语文上册全册教案
- 私车出差管理办法
- 2025年国家网络安全知识竞赛题库带答案
评论
0/150
提交评论