Android大作业
学 院 计算机科学与工程学院
专 业 计算机科学与技术一班
学生姓名
小组成员
学生学号
指导教师
课程编号
课程学分
起始日期
教师评语 | 教师签名:日期: |
---|---|
成绩评定 | |
备注 |
Android大作业
一、选题背景
据统计,中国目前已经有4.874亿手机用户。大部分消费者选择手机产品的首要选择之一就是手机的拍照功能、像素以及清晰度。尤其是女性人群,想要把人物等照片弄得好看又有意境。目前市场上虽然有Photoshop和Adobe Illustrator等专业图像软件,但其学习门槛太高。因此我们小组制作出《美图照相机》手机android软件,为该人群提供便利。
该android软件实现了基本拍照功能、图片时间事件等分组功能、图片滤镜功能、图片色彩调节功能。用户可以随时随地使用该软件进行拍照、照片事件保存、照片滤镜修改、照片色彩修改等,轻松获得美观大方的照片以及简洁的照片分类。
二、方案论证(设计理念)
基于JDK-1.8的开发平台,运行于android API 12及以上平台,大部分android手机兼容该app。
该软件主要运用到android中的控件,异步加载,缓存等知识、java中的反射继承多态,内部类知识,色彩矩阵变换处理图像、颜色数组及颜色分量实现滤镜知识等等。
整个软件可以分成四个模块,拍照功能、照片分类功能、滤镜功能、色彩调节,图片多点触控功能。
拍照功能:
我们由于自己实现原生相机的难度较大,涉及图像处理的知识较多,我们选择android的隐式Intent来调用系统相机。
照片分类功能:
- 按照相片的时间进行分类
- 使用缓存技术
滤镜功能:
滤镜是指安装在相机镜头前过滤自然光的附加镜头,用来实现调色和添加效果。软件实现的滤镜可以模拟大部分的镜头滤镜,如色温变换滤镜(LB)和强调滤镜等.
软件模拟镜头滤镜中,实现滤镜功能是对照片中的色彩进行映射的过程。且可以为照片增加光线变化(如 LOMO 的暗角效果)、叠加材质和应用相框等等等,而我们采取最基本的颜色映射方法。 颜色映射是指将原来照片中的每一种颜色,通过某种映射方法转换成另一种颜色,从而使图片显示出不同的色调,改变图片的意境。
色彩调节功能:
一张好的照片,除了要有好的内容外,色彩和层次感也一定要分明。有彩色系的颜色具有三个基本特性:色相、纯度(也称彩度、饱和度)、明度
色相: 色相是有彩色的最大特征。其能够比较确切地表示某种颜色色别的名称。调节色相时会很直观看到照片显示的色调是蓝、黄或其他颜色。
纯度: 色彩的纯度是指色彩的纯净程度,它表示颜色中所含有色成分的比例。含有色彩成分的比例愈大,则色彩的纯度愈高,含有色成分的比例愈小,则色彩的纯度也愈低。
明度:明度是指色彩的明亮程度。各种有色物体由于它们的反射光量的区别而产生颜色的明暗强弱。色彩的明度有两种情况:一是同一色相不同明度,二是各种颜色的不同明度。
有彩色的色相、纯度和明度三特征是不可分割的,通过改变图片的饱和度、色温、亮度来进行调节图片的色彩,从而使图片色彩饱满,别有韵味图片多点触控功能:
实现了图片的平移缩放等功能。具体为两指或者多组放大缩小,图片双击放大或者缩小,图片平移。
三、过程论述
该android 软件的实现功能共有四大模块:拍照功能、照片分类功能、滤镜功能、色彩调节,图片多点触控功能。
Activity之间的跳转如下:
CameraActivity
(照相功能)
导航:
该模块的实现过程是:
1.加载menu 目录下的xml文件。
2. 使用java的反射机制,实现隐藏菜单从ActionBar下方出现以及item图标的显示。 - 由于代码的重复出现,代码设计成工具类。
主界面:
- 主界面是一个滑动的界面,采用继承于HorizontalScrollView改写的控件进行布局
- 界面截图:
拍照功能:
该模块的实现过程是:
- 通过Intent 的隐式调用,调用其他的系统相机应用。
- 在OnActivityResult中处理图片;
图片浏览功能:
1.ZoomImageView类继承于ImageView,实现了OnTouchListner等接口
2.该类包括双击缓慢放大,图像平移,多指触控等功能
3.具体表现为两指或者多组放大缩小,图片双击缓慢放大或者缩小,图片平移随手指移动。
4 、通过OnTouch事件以及Matrix(该类实现图片的缩放平移)这个类,并在缩放或平移过程中,进行边界检查
5 以下为放大图片:
滤镜功能:
该模块实现功能是:
-
- 获取当前图片的像素值
2. 在Gallery中选则滤镜功能。
- 其中Gallery中的图片均经过滤镜处理后显示
- Gallery中可以快速滑动来选去喜欢的滤镜功能
- 点击边界上的图片后,其后继图片将自动移动到当前界面。
- 此处一共有25中滤镜特效,每种有着不同的色调计算公式。
3. 将当前图片的颜色数组及颜色分量进行相应改变
4. 获取改变后的图片并显示。
5. 如喜欢可保存在手机图库中。
如图 Figure-滤镜功能
Figure 1 滤镜功能
色彩调节功能:
该模块实现功能是:
- 通过三条SeekBar来改变图片的色温、饱和度、明度;
- 获取SeekBar上长度,通过相应数学计算公式,获得相应的色相、饱和度、明度的数值;
- 通过色彩矩阵变换来处理图像,并显示相应图片。
- 调节喜欢的色调后,可保存在手机图库中。
如图figure-色彩调节:
Figure 2色彩调节
照片分类功能:
1.ListViewAdapter继承BaseAdapter,为相册主界面的ListView提供数据源,每一个子项有一个TextView和GridView分别用于显示时间和分类好的图片。
2.PhotoAdapter继承ArrayAdapter,为GridView提供数据源,每个子项有一个ImageView,用于显示图片。
3.在GridView中使用AsyncTask异步加载图片。
- 课程设计总结
1.本次课程设计,我主要负责主界面以及图片展示部分以及ActionBar的编写。
- 通过本次课程设计,我更好的掌握了Android基本控件的应用以及Android布局的编写。
- 学会合团队作,动手能力得到加强。
- 对Android自定义空间有了更深刻的理解和改写能力,阅读源代码的能力进一步得到提高。
- 对Android各种View都有一定的了解,对View的内部机制包括测量(onMeasure) 布局(onLayout)绘制(onDraw)有了了解
参考文献
[ 1 ] 《Java开发手册》.桂颖, 谷涛.电子工业出版社
[ 2 ] 《Android 第一行代码》.郭霖 电子工业出版社
[ 3] 《java核心技术》.Cay S.Horstmann Gary Cornell .机械工业出版社
[ 4] Android 官网教程 网址:http://hukai.me/android-traini
购买须知
- 1. 【服务提示】广州思坞信息科技有限公司、广州沐思信息科技有限公司(以下称“千聊”)系提供技术支持的网络服务提供者,千聊平台内相关商品的信息内容制作、发布等均由知识店铺独立完成,千聊不事先审核。
- 2. 【交易主体】请您了解,您在千聊平台购买的数字化商品均系由商品页面上标示的知识店铺为您提供,千聊并非数字化商品的提供者和销售者。您一旦支付费用购买千聊平台上知识店铺提供的相关数字化商品,即与提供数字化商品的知识店铺建立合同关系,千聊不构成该合同关系的任一方,相关权利义务均归属于您与知识店铺之间(如课程收益、开票义务、产品安全保障义务归知识店铺),若您需要开票,请您联系知识店铺申请开具发票。
- 3. 知识店铺课程为付费课程的,按课程计划定期更新,每节课程可在开课时学习,也可反复回听。千聊平台上提供的课程、会员等在线商品为数字化商品,根据《消费者权益保护法》等规定,不适用七日无理由退货规定(您与数字化商品提供者达成退款合意的除外),请您于购买时谨慎考虑。
- 4. 购买在线商品后关注我们的服务号,可在菜单里进入听课。
- 5. 该课程听课权益跟随支付购买微信账号ID,不支持更换(赠礼课程除外)。
- 6. 如有其它疑问,可点击右下角“更多”按钮后选择“咨询”,与内容供应商知识店铺沟通后再购买。
- 7. 【退款方式】您的退款申请符合千聊平台规则情形的,该笔退款金额将原路退回您的账户,但若因退款产生第三方支付平台手续费的,将在扣除该手续费后退回剩余款项。
- 8. 该作品版权归原作者所有,禁止任何形式的商业使用(含翻录、传播等侵权行为),违反者将依法承担法律责任。
价格说明
- 1. 划线价格:指商品的正品零售价、知识店铺指导价或该商品的曾经展示过的销售价等,并非原价,仅供参考。
- 2. 未划线价格:指商品的实时标价,不因表述的差异改变性质。具体成交价格根据商品参加活动,或会员使用优惠券等发生变化,最终以订单结算页价格为准。
- 3. 老师/知识店铺课程介绍页(含主图)以图片或文字形式标注的一口价、促销价、优惠价、拼团价、限时特价等价格可能是在使用优惠券或特定优惠活动和时段等情形下的价格,具体请以结算页面的标价、优惠条件或活动规则为准。
- 4. 此说明仅当出现价格比较时有效,具体请参见《千聊价格发布规范》。若老师/知识店铺单独对划线价格进行说明,以老师/知识店铺的表述为准。