已阅读5页,还剩4页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
洛 阳 理 工 学 院手机软件开发实训报告专 业 计算机应用技术 班 级 Z120551 学 号 Z12055139 姓 完成日期 2014-1-6 实 训/ 实 验 内 容 与 要 求 实训题目:1)天气预报App设计与实现2 记事本App设计与实现3)手机相机App设计与实现4)日程管理App设计与实现5)文件管理工具App设计与实现 6)备忘录App设计与实现7)多媒体播放器设计与实现 8)图片浏览器设计与实现实训内容和要求:通过实现一个完整的软件,体验软件项目开发的工作流程,加深对相关理论知识的理解,提高实际分析设计能力。设计任务:根据提供的参考程序,学习其中的设计思路和编程技巧在此基础上进行功能的扩展,完成一个有实用价值的软件指导教师:郑卫东 2015 年 1 月 6 日指 导 教 师 评 语 成绩: 指导教师:_ 年 月 日一、简介本款图片浏览器软件基于Android系统平台研发的,设计有透明度、缩放、旋转和选择图片等功能,其中设计涉及8个button按钮,可以实现图片的查看和基本的操作功能,框架结构ImageView有两个子类 ImageButton 和 QuickContactBadge, ImageButton还有一个子类是 ZoomButton。二、程序模块划分1.XML文件属性调整边界, 保持长宽比:android:adjustViewBounds, setAdjustViewBounds(boolean), 是否调整自己的边界, 用来保持图片的长宽比例, 该属性与 android:maxHeight 和 android:maxWidth 属性一起使用才有效果, 单独使用没有效果; 设置最大宽, 高:android:maxWidth(android:maxHeight),setMaxWidth(int)setMaxHeight(int), 该属性需要与android:adjustViewBounds属性一起使用,单独使用无效果; 设置图片固定大小, 同时保持长宽比: a. 设置android:adjustViewBounds 为 true; b. 设置最大宽度, 高度; c. 设置android:layout_width 与 android:layout_height 值为 warp_content;裁剪保留空白:android:cropToPadding, setCropToPadding(boolean), 是否裁剪, 用来保留ImageView的padding, 该属性与android:scrollY 属性一起使用的时候才有用, 单独使用没有效果; 即 在滚动的时候, 滚动到边界, 边界的padding空白是否显示;填充方式:android:scaleType, setScaleType(ImageView.ScaleType), 设置图片缩放类型以适配ImageView大小, 即填充方式;可能的取值: matrix, fitXY, fitStart, fitCenter, fitEnd, center, centerCrop, centerInside;matrix: 方法中的常量值为 ImageView.ScaleType.MATRIX, 使用矩阵来进行绘图;fitXY: 方法中的常量值为 ImageView.ScaleType.FIT_XY, 在x y 两个方向上缩放, 使图片完全填充整个ImageView 不按照长宽比例缩放;fitStart: 方法中的常量值为 ImageView.ScaleType.FIT_START, 保持长宽比缩放, 直到该图片完全显示在ImageView中, 缩放完成之后该图片在左上角;fitCenter: 方法中的常量值为 ImageView.ScaleType.FIT_CENTER, 保持长宽比缩放, 直到该图片完全显示在ImageView中, 缩放完成之后该图片位于中央;fitEnd: 方法中的常量值为 ImageView.ScaleType.FIT_END, 保持长宽比缩放, 直到该图片完全显示在ImageView中, 缩放完成之后该图片位于右下角;center: 方法中的常量值为 ImageView.ScaleType.CENTER, 将图片放在ImageView的中央, 不进行缩放;centerCrop: 方法中的常量值为 ImageView.ScaleType.CENTER_CROP, 保持长宽比缩放, 使图片完全覆盖ImageView;centerInside: 方法中的常量值为 ImageView.ScaleType.CENTER_INSIDE, 保持长宽比缩放, 是的ImageView完全显示图片;(1)程序运行的AndroidManifest描述:【AndroidManifest.xml】 (2)程序界面布局XML文件:【activity_main.xml】 2.ImageView常用方法设置位图: setImageBitmap(bitmap), 为ImageView设置Bitmap位图显示;设置Drawable: setImageDrawable(drawable), 为ImageView设置Drawable显示;设置资源: setImageResource(int), 为ImageView设置资源图片;设置路径: setImageUri(uri), 为ImageView设置图片路径, 显示该路径的图片;3. 图片浏览器操作介绍(1). 实现左右循环切换图片图片数组: 将图片放在数组中, ImageView显示数组中的图片;当前显示图片下标索引: 设置一个int值, 用来表示当前显示图片数组中的图片, 这个值不是int下标, 这个值设置很大设置成Integer.MAXVALUE / 2, 该值与图片数组的长度进行取模运算结果就是当前显示的图片数组下标值;翻页操作: 上一页操作就将当前显示索引自减1, 然后模上 图片数组大小; 下一页就将当前索引自增1, 然后模上 图片数组大小;代码如下:/设置一个很大的值,保证前后翻页不会出现异常currentImage=Integer.MAX_VALUE/2;/为了保证图片能够循环,这里模运算是关键,显示图片的下标始终是长度的模image_all.setImageResource(images+currentImage%images.length); image_all.setImageResource(images-currentImage%images.length);(2). 透明度改变设置当前透明度: 设置一个当前透明度值, 初始值为255, 255是不透明, 0为完全透明;透明度改变: 当点击透明度增加按钮的时候, 透明度自增20, 如果结果透明度大于255, 那么改透明度强制设置为255; 当点击透明度见效按钮的时候, 透明度自减20, 当透明度小于0的时候, 透明度强制设置为0;代码如下:/透明度初始值alpha=255;/透明度增加alpha+=20;if(alpha=255)alpha=255;image_all.setAlpha(alpha);/透明度减小alpha-=20;if(alpha=0)alpha=0;image_all.setAlpha(alpha);(3). 图片的放大缩小获取View组件宽高: 在Activity普通方法中无法获取到view组件的准确值, 如果想要获取view组件的宽高, 可以在onWindowFocusChanged()方法中获取;计算每次自增自减的单位值: 当按下缩放按钮的时候, 就对ImageView的宽高值进行自增自减单位值操作;为ImageView设置宽高: 即设置LayoutParams, 注意是LinearLayout.LayoutParams对象;代码如下:获取宽高:OverridepublicvoidonWindowFocusChanged(booleanhasFocus)/TODOAuto-generatedmethodstubsuper.onWindowFocusChanged(hasFocus);/获取ImageView组件的宽高imageWidth=image_all.getWidth();imageHeight=image_all.getHeight();/计算每次自增自减的值addWidth=imageWidth/5;addHeight=imageHeight/5;缩放图片操作:caseR.id.big:/放大图片imageWidth+=addWidth;imageHeight+=addHeight;image_all.setLayoutParams(newLinearLayout.LayoutParams(imageWidth,imageHeight);break;caseR.id.small:/缩小图片imageWidth-=addWidth;imageHeight-=addHeight;if(imageWidth=0|imageHeight=0)imageWidth+=addWidth;imageHeight+=addHeight;image_all.setLayoutParams(newLinearLayout.LayoutParams(imageWidth,imageHeight);break;(4). 旋转图片操作 设置Matrix对象: 该对象用来存放图像的旋转角度;设置旋转角度: matrix.setRotate(), 即可设置旋转角度;创建Bitmap: 创建一个位图, 注意将设置了旋转角度的 matrix 设置上去;源码如下:matrix=newMatrix();/向左旋转进行的操作anglel+=45;matrix.setRotate(anglel);Bitmapbitmap=(BitmapDrawable)getResources().getDrawable(imagescurrentImage%images.length).getBitmap();bitmap=Bitmap.createBitmap(bitmap,0,0,bitmap.getWidth(),bitmap.getHeight(),matrix,true);image_all.setImageBitmap(bitmap);/向右旋转进行的操作anglel-=45;matrix.setRotate(anglel);Bitmapbitmap1=(BitmapDrawable)getResources().getDrawable(imagescurrentImage%images.length).getBitmap();bitmap1=Bitmap.createBitmap(bitmap1,0,0,bitmap1.getWidth(),bitmap1.getHeight(),matrix,true);image_all.setImageBitmap(bitmap1);运行结果:心得体会:通过本次生产实习受益匪浅,知道了一个项目的完成步骤和模块的划分,在本次生产实习中遇到的困难是有以下几点:(1)对android软件开发知识掌握的不够,把代码敲出来功能实现了但是还是不知道怎样实现的;(2)对开发软件的过程不是很熟悉一个功能实现了不知道下一步要干什么;(3)对eclipse的调试方法知道的不是很多,所以遇到问题自己却束手无策只能求助,最终在网络和好友的帮助下实现了老师要求的功能。感觉自己的编程能力在不断上升,在短暂的课程设计过程中,我深深的感觉到自己所学的知识的肤浅和在实践运用中知识的匮乏,刚开始的一段时间里,对一些开发无从下手,茫然不知所措,这让我感到非常的难过。在以前的学习中总以为自己学的不错,一旦接触到实践,就会发现自己知道的是多么少,只有这样我们才会真正领悟到学无止境的含义。真正的程序高手都是练出来的,通过本次课程设计确实体会到了这一点儿。课程设计的时间虽然短暂但是学到了不少的知识,课程设计中设计的图片浏览器设计发现很多的错误,其中有的错误到最后解决的时候却发现很幼稚,不过这样的错误多了,在不知不觉中对一些编程知识分外的熟悉了起来,并且
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年八上物理透镜试卷及答案
- 2025年基础审计案例题库及答案
- 2025年推理高智商测试题及答案
- 湖南力量教练测试题及答案
- 2025年汉代文学考研真题及答案
- 子宫出血应急预案(3篇)
- 重庆高温应急预案范文(3篇)
- 缉毒民警测试题目及答案
- DB1309T 348-2025 院前医疗急救调度服务规范
- 备战2026年高考英语考试易错题(新高考)消灭易错08 名词(解析版)(3大题组)
- 《陌生拜访技巧》课件
- 电梯施工配合措施
- 增项合同范本
- 学生宿舍节能照明改造方案
- 【粤教版】四年级全一册《劳动与技术》第3单元 活动2 《炒饭、煮面条》 课件
- 军事理论知识竞赛考试题库300题(含答案)
- 标杆车间规划
- 北京高考语文三年模拟真题(21-23年)知识点汇编-古诗词赏析
- 北师大小学数学一年级上册课件:《一共有多少》教学参考课件
- CJT156-2001 沟槽式管接头
- ASME-第IX卷焊接篇内容介绍
评论
0/150
提交评论