生产实习报告—基于android建议音乐播放器.doc_第1页
生产实习报告—基于android建议音乐播放器.doc_第2页
生产实习报告—基于android建议音乐播放器.doc_第3页
生产实习报告—基于android建议音乐播放器.doc_第4页
生产实习报告—基于android建议音乐播放器.doc_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

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

文档简介

专 业班 级学 号学 生 姓 名指 导 教 师实 习 时 间20122013学年第二学期2013.3.4至2013.3.22实 习 成 绩说明:1、 实习指导教师由学院校内教师担任,负责组织实习、学生管理、参加实习答辩、实习成绩评定、给出实习评语等工作。2、 实习报告由武汉工程大学计算机科学与工程学院提供基本格式(适用于学院各专业),各专业教研室和指导教师可根据本专业特点及实习内容做适当的调整,学生须按指导教师下达的实习报告格式认真进行填写。3、 实习成绩由指导教师根据学生的实习情况给出各项分值及总评成绩。4、 指导教师评语一栏由实习指导教师(校内教师)就学生在整个实习期间的表现给出客观、全面的评价,包括实习期间的表现、实习报告的质量、实习答辩的情况等。5、 学生必须参加实习答辩,凡不参加实习答辩者,实习成绩一律按不及格处理。实习答辩小组应由2人及以上教师组成,其中校内指导教师必须参加,否则视作无效答辩。6、 实习报告正文字数应不少于5000字,实习日记字数不少于200字/天。7、 实习报告正文中实习目的与任务、实习地点、实习内容和要求等项,可由指导教师统一给出(自主实习除外)。学生自主实习的,可根据实习的情况自行填写以上内容。8、 自主实习的学生还应提供由实习单位出具的实习鉴定表(复印件),与实习报告一起装订,作为参加实习答辩和评定成绩的依据。武汉工程大学计算机科学与工程学院 生产实习报告第一章 课题背景1.1背景及意义 现今社会生活紧张,而欣赏音乐是其中最好的舒缓压力的方式之一,本项目的目的是开发一个可以播放主流音乐文件格式的播放器,本设计实现主要功能是播放Mp3格式的音乐文件,并且能够控制播放、暂停、停止、上一曲、下一曲、音量调节、视觉外观、播放列表的搜索、添加和删除操作等多种播放控制功能,界面简明,操作简单。本项目是一款基于Android手机平台的音乐播放器,使Android手机拥有个性的多媒体播放器,使手机显得更生动灵活化,与人们更为接近,让手机主人随时随地处于音乐视频的旋律之中。使人们的生活更加多样化。也使设计者更加熟练Android的技术和其它在市场上的特点。1.2实习目的 毕业实习是学生了解和认识企业事业单位对专业人才需求的重要途径,是学生进入职场之前,增加对专业认识的一个必不可少的学习阶段。现在学生对计算机的理论只是初步有了一个全面认识,除了平常教学中的实验课程之外,现在课程大都已经结束,毕业实习也是一个不可少的部分。通过毕业实习,增进对从事本专业的自豪感以及责任感,选好入职方向,做好人生职业规划。1.3实习任务具体的任务包括:搜集与职业相关的资料,了解Android开发的基本原则,学习Android开发的相关知识,掌握Android开发的基本技术,丰富Android开发的实战经验。学习JSP、SQL等的基础知识及正确的运用方法,了解设计专题的主要内容,通过实习,巩固大学所学到的知识,提高分析判断和处理实际问题的能力,增强自己的团队合作意识,了解软件开发的思考角度和主要流程。为毕业之后能够进入工作状态并且能够更好地工作,打好一定的基础。通过理论联系实际,从而提高处理实际问题的能力,为将来开发项目的顺利进行做好充分准备,与社会环境接轨做好准备。1、了解软件产品的研发过程、软件设计与开发的管理等专业知识。2、了解计算机软件等相关领域的发展现状和最新的科研成果,及在生产科研中的应用。3、巩固学生的理论知识,培养学生的实践能力、创新能力,拓宽学生视野,树立努力学习专业知识的信心,并为以后在社会工作打下一定的实践基础。4、了解Android的基本知识以及相关概念的理解与运用。5、完成一个简单的音乐播放器。6、明确专业学习要求,制定好切实的职业与学习规划。7、增强劳动观念,树立正确的劳动观和价值观。8、通过上课讲解以及完成项目的形式完成整个毕业实习。9、通过讲课形式让学生了解企业事业单位对本专业人才需求以及具备什么样的职业 道德。以及通过模拟面试的形式让学生了解在面试过程中面试官可能会问到的但面试者却很难得当处理的问题,比如说对于薪资的要求等。1.4实习内容和要求学生在毕业实习期间,必须服从带队指导教师的实习安排,遵守实习所在单位的各项规章制度并听从基地指导教师的指挥。本次的实习主要内容包括:学会用eclipse的android编程方法,以及开发用的MVC变成开发模式,和团队开发所使用的SVN团队编程版本控制器。要求:1、以专题报告的形式介绍软件产品、技术、管理等方面的专业知识和最新成果,以及在相关行业的应用。2、听课笔记、实习日记齐全,实习结束后,撰写认识实习报告。3、上课跟随着老师的进度听讲,讲解完成之后,完成老师布置的当堂练习,有不懂的问题要当堂课解决,提前做好预习。第二章 设计简介及设计方案论述2.1可行性分析 操作可行性:随着时代的发展,3G时代已经来临,人们对于手机的操作已经很熟练了,而对于Android手机,更是由于简单的操作,行云流水的触摸感觉,已经赢得了世人的青睐。对于本应用而言,操作方面不对存在障碍,简洁大方的用户界面设计,只需用户轻轻点击,即可完成所有的对音乐播放的控制等操作。 经济可行性:本系统开发经费在经济上是可以接受的,现在电脑和手机已经普及,而手机更是人人都拥有,而Android手机更是主流手机,在市面上一般的Android系统手机的价钱都在千元左右,所示说价钱并不是很昂贵。其开发软件在目前来说全部都是免费的。所以本应用在经济上是可行的。 技术可行性:Android作为第一个完整、开放、免费的手机平台,Android也为开发者提供了完整的API,使开发者在为其开发程序时拥有更大的自由。只要开发者有一个比较全面的Java基础以及一些简单的XML技术,对软件的开发流程有一定的了解,在开发Android程序的时候一般是不会有太大的问题的。只需搭建Android开发必要的开发环境就可以了,本应用选择的开发工具Eclispe+JDK+Android插件ADT。所以开发者想进行Android开发,准备工作其实是很简单的。 本应用选择Eclipse、配合Android开发插件ADT、只需运行一个Android Virtual Device(AVD),就可以进行开发和调试的工作。综上所述,本应用在技术上是可行的。 2.2设计目标 现今社会生活紧张,而欣赏音乐是其中最好的舒缓压力的方式之一,本项目的目的是开发一个可以播放主流音乐文件格式的播放器。音乐播放器的实现的这主要功能是播放主流格式的音乐文件,并且能够控制播放、暂停、上一曲、下一曲、进度条控制、视觉外观、播放列表和歌曲列表的操作等多种播放控制功能,界面简明,操作简单。本项目是一款基于Android手机平台的音乐播放器,使Android手机拥有个性的多媒体播放器,使手机显得更生动灵活化,与人们更为接近,让手机主人随时随地处于音乐视频的旋律之中,使人们的生活更加多样化。 在国内三大运营商如火如荼的3G营销战持续升温,再加上3G的推出对整个行业的巨大推动作用,无疑将引爆3G手机开发工程师这个黄金职位。但符合条件的Android工程师屈指可数,在未来几年内,Android开发工程师将成为3G行业炙手可热的岗位之一。音乐播放器的另外一个设计目标就是让自己更加系统的去熟悉和学习Android开发技术的相关知识,为以后开发Android程序打下良好的基础。 2.3需求分析 软件需求分析工作是软件生命周期中最重要的一步,也是决定性的一步。软件需求分析是一个不断认识和逐步西化的过程,该过程将软件计划阶段所确定的软件范围逐步细化到可详细定义的程度。需求分析师软件开发的基础,因此对于复杂系统而言,需求分析显得尤为重要,首先要进行需求分析。开发人员应对用户的要求及显示环境进行调查和了解2.3.1功能需求分析根据播放器的实现目标,可获得播放器的基本需求,以下从不同角度来描述系统的需求。系统的功能需求,分成三部分来概括,即播放器的基本控制需求,播放列表管理需求和播放器友好性需求,我们主要实现的是播放器的基本控制需求。其功能结构图如图3-1所示;图 3-1应用功能需求结构图 根据项目的目标,我们可以获得项目系统的基本需求,一下从不同角度描述系统的需求,并且使用用例图来描述系统的功能需求,播放控制模块分析:本应用对播放器的基本控制也全部得到了实现,例如:暂停、上一首、下一首和播放时间的同步显示等,如图3-2所示播放器的基本控制功能用例图分析。图 3-2 播放器的基本控制功能用例图 表2-1 播放功能用例表用例名称:播放参与者:用户目标:是用户可以播放在播放列表中选中的歌曲前置条件:播放器正在运行基本事件流:用户单击播放按钮或者单击要播放的歌曲表2-2暂停功能用例表用例名称:暂停参与者:用户目标:使得用户可以暂停正在播放的歌曲前置条件:歌曲正在播放且未停止和暂停基本事件流:1.用户单击暂停按钮2.播放器将暂停当前的歌曲表2-3停止功能用例表用例名称:停止参与者:用户目标:使得用户可以停止正在播放的歌曲前置条件:歌曲正在播放或暂停基本事件流:1.用户单击停止按钮2.播放器将停止当前的歌曲表2-4上一首/下一首功能用例表用例名称:上一首/下一首参与者:用户目标:使得用户可以听上一首或者下一首前置条件:歌曲正在播放或者暂停基本事件流:1.用户单击“上一首”或“下一首”按钮按钮 2.播放器将播放上一首或者下一首歌曲2.3.2性能需求分析 根据Android手机系统要求无响应时间为5秒,所以就有如下性能要求 当要求歌曲播放时,程序响应时间最长不能超过5秒。 当要求歌曲暂停时,程序响应时间最长不能超过5秒。 当要求添加或删除歌曲时,程序响应时间最长不能超过5秒。 当要求歌曲上/下一首时,程序响应时间最长不能超过5秒。 当要求进行列表切换时,程序响应时间最长不能超过5秒。 2.4 运行环境需求 操作系统:Android手机基于Linux操作系统 支持环境:Android 1.5 - 2.0.1版本 开发环境:Eclipse 3.5 ADT 0.95 第3章 详细设计3.1Android项目介绍3.1.1搭建Android开发环境 任何事物要运行,都要有它的环境,Android也有它的环境才能够运行,下面介绍Android的开发环境配置。搭建开发环境需要的软件: 1. 操作系统:Windows XP或Linux;2. 软件包:Android SDK(Software Development kit Java Development kit) 、ADT(Android Develoopment Tool) 3. IDE环境:Eclipse IDE+ADT Eclipse3.3以上 4. JDK:Java Runtime Environment虚拟机 、(JDK)Java Development kit 安装步骤如下: 第一步:安装Java虚拟机sun-java6-jdk版本,第二步:安装Eclipse3.5工具。第三步:安装Android SDK,如图3-1,3-2所示;第四步:安装Android ADT插件。 图3-1 安装Android SDK 将地址栏中选择android-sdk-windows所在的目录,点击OK,即可弹出如图3-3所示界面; 图3-2 安装Android SDK图3-3创建安卓虚拟机在图3-4上单击new按钮,新建一个安卓虚拟机,在name栏中输入名字,将target选中,然后设置size,单击create AVD按钮,就会弹出图3-5所示界面;其中name栏是所创建虚拟机的名字,target栏是需要的ADT的版本,size用来设置安卓虚拟机的大小。图 3-4 新建虚拟机主界面 在图3-5上单击start按钮,带程序启动后就会弹出图3-6界面,随后单击lanuch(执行)按钮,就会弹出安卓虚拟机界面,如图3-7所示;图3-5 新建虚拟机界面图3-6 lanuch options界面图 3-7 安卓虚拟机界面3.1.2 Android 音乐播放器的工程Android工程基本结构目录包括:src (源代码)、gen(Android系统自动生成的常量)、Res(资源文件):主要存放程序界面的布局配置(.xml)文件和图片资源。AndroidMainfes.xml 是四大组件的驱动配置文件,有它的存在,Android程序的四大组件才可以正常的跳转。 下图3-8为音乐播放器代码结构和各界面的配置文件,图像资源等,图3-9为该播放器的.Java文件,3-10为该播放器的图片资源,图3-11为该播放器的各种界面的布局配置文件。 图 3-8 音乐播放器代码结构图 图 3-9 播放器的.Java 图 3-10 图片资源 图3-11 布局配置文件 程序运行起来,首先是要创建安卓虚拟机,出现界面之后,选择一首音乐便会播放,或者单击播放按钮,歌曲也会播放。具体如图3-12所示流程图;图3-12 程序流程图3.2关键代码 此代码的主要功能是用来使音乐播放器在进行播放前,从手机存储设备中过滤出后缀名为MP3的文件,一层一层往下找,不限于根目录下,知道最后没有子文件夹为止。public class MusicFilter implements java.io.FileFilterpublic boolean accept(File pathname) boolean b = false;if(pathname.isDirectory()b = true;elseif(pathname.getName().endsWith(.mp3)b = true;elseb = false;return b ; 下面为程序主要代码主要实现的功能为:设置播放器音量大小,音乐进度拖拉条,上一首,下一首,播放,停止,歌曲时间显示;public class MusicTestActivity extends ListActivity /用来存放音乐文件路径private ArrayList musiclist = new ArrayList();/用来存放音乐文件名字private ArrayList musicnamelist = new ArrayList();/音乐路径.private final String MUSIC_PUTH = /sdcard/;/播放对象private MediaPlayer mediaPlayer;/音乐例表中当前要播放音乐文件的索引private int currentListItem;/图片按钮的申明private ImageButton imageStop;private ImageButton imagePause;private ImageButton imageLast;private ImageButton imageStart;private ImageButton imageNext;/关于音量的变量private AudioManager audioManager ;/最大音量private int maxVolume;/当前音量private int currentVolume;/音量拖动条private SeekBar soundBar;/显示时间的控件private TextView tv ;/音乐的进度条private SeekBar musicBar;/过虑器private MusicFilter mf;/用来标记是否为播放状态 (0:初始状态,1:播放状态,2:暂停状态)private int falg = 0 ; Override public void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState); setContentView(R.layout.main); mf = new MusicFilter(); /播放对象初始化 mediaPlayer = new MediaPlayer(); /调用音乐绑定方法 this.musicList(); /将5个按钮进行初始化 imageStop = (ImageButton)this.findViewById(R.id.imageStop);/ imagePause = (ImageButton)this.findViewById(R.id.imagePause); imageLast = (ImageButton)this.findViewById(R.id.imageLast); imageStart = (ImageButton)this.findViewById(R.id.imageStart); imageNext = (ImageButton)this.findViewById(R.id.imageNext); /获取系统声音管理器 audioManager =(AudioManager) this.getSystemService(Context.AUDIO_SERVICE); /获取系统声音的最大值 maxVolume = audioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC); /获取系统当前的声音值 大小 currentVolume = audioManager.getStreamVolume(AudioManager.STREAM_MUSIC); /初始化音量拖动条 soundBar = (SeekBar)this.findViewById(R.id.soundBar); /设置音量拖动条的最大值 soundBar.setMax(maxVolume); /设置音量拖动条的当前值 soundBar.setProgress(currentVolume); /时间显示控件初始化 tv = (TextView)this.findViewById(R.id.textView1); /把音乐播放进度条进行初始化 musicBar =(SeekBar) this.findViewById(R.id.musicBar); /调用listener方法 this.listener(); /递归.通过递归把sdcard里面所有的音乐文件中的路径和音乐名字分区保存到(musiclist和musicnamelist)中 private void showInfo(String path)File f = new File(path);/先实现文件类对象File fileList = f.listFiles(mf);if(fileList!=null)for (int i = 0; i fileList.length; i+) if(fileListi.isFile()musiclist.add(fileListi.getAbsolutePath();musicnamelist.add(fileListi.getName();if(fileListi.isDirectory()/判断是否是一个目录如果是就递归showInfo(fileListi.getPath(); private void musicList() /调用上面的递归方法.把sdcard里面的所有音乐文件的名字和路径分区保存到(musiclist和musicnamelist)这两个容器中 showInfo(MUSIC_PUTH); /1设置面板容器 2设置布局3音乐例表 ArrayAdapteradap=newArrayAdapter(MusicTestActivity.this, R.layout.musicitem, musicnamelist); /将适配器里面的数据添充到ListView(例表视图)中 this.setListAdapter(adap); public String toTime(int time) time /= 1000;int minute = time / 60;int hour = minute / 60;int second = time % 60;minute %= 60;return String.format(%02d:%02d, minute, second); private void playMusic(String path) try mediaPlayer.reset();/先重置一下mediaPlayer.setDataSource(path);/设置音乐文件的路径mediaPlayer.prepare();/准备 mediaPlayer.setLooping(true);/循环播放 mediaPlayer.start();/开始播放/设置音乐拖动度的当前进度初始值musicBar.setProgress(mediaPlayer.getCurrentPosition();/设置音乐拖动条的最大值musicBar.setMax(mediaPlayer.getDuration();/System.out.println(当前正在播放的歌曲时间是: + mediaPlayer.getDuration();/显示出来当前音乐的时间tv.setText( toTime(mediaPlayer.getCurrentPosition() + / + toTime(mediaPlayer.getDuration();/当歌曲开始播放时.线程也开始运行this.startProgressUpdate(); catch (IllegalArgumentException e) e.printStackTrace(); catch (IllegalStateException e) e.printStackTrace(); catch (IOException e) e.printStackTrace(); private Handler mHandle = new Handler()public void handleMessage(Message msg) /对音乐显示时间每一秒钟付值一次tv.setText( toTime(mediaPlayer.getCurrentPosition() + / + toTime(mediaPlayer.getDuration() );/不断将音乐播放的位置赋值给MusicBar.musicBar.setProgress(mediaPlayer.getCurrentPosition(); ; /申明一个线程类 public class th extends Thread /实例化此类的用户会转一个时间毫秒数进来付值给i int i ; /构造方法 public th(int i) this.i = i; /线程方法 public void run() while(true) try this.sleep(i); catch (InterruptedException e) e.printStackTrace();mHandle.sendEmptyMessage(0); /开辟Thread 用于定期刷新SeekBar,改变音乐时间 public void startProgressUpdate() th t = new th(1000);/初始化线程类转入1000毫秒 t.start();/开启一个线程 /当用户返回时结束音乐并释放音乐对象public boolean onKeyDown(int keyCode, KeyEvent event) if(keyCode = KeyEvent.KEYCODE_BACK)/音乐停止/mediaPlayer.stop();/可以释放播放器占用的资源,一旦确定不再使用播放器时应当尽早调用它释放资源。/mediaPlayer.release();/结束/this.finish();System.exit(0);return true;protected void onListItemClick(ListView l, View v, int position, long id) /获取到当前点击的音乐文件索引 this.currentListItem = position ;/调用playMusic方法进行音乐播放并传入音乐的文件路径this.playMusic(musiclist.get(currentListItem) ) ;imageStart.setImageResource(R.drawable.pause);falg = 1;private void listener()/音乐播放进度条的事件处理musicBar.setOnSeekBarChangeListener(new OnSeekBarChangeListener() public void onStopTrackingTouch(SeekBar seekBar) /把音乐播放进度条的当前位置 的值赋给mediaPlayer.mediaPlayer.seekTo(seekBar.getProgress();public void onStartTrackingTouch(SeekBar seekBar) public void onProgressChanged(SeekBar seekBar, int progress,boolean fromUser) );/调声音大小拖动条的事件处理soundBar.setOnSeekBarChangeListener(new OnSeekBarChangeListener() public void onStopTrackingTouch(SeekBar seekBar) /System.out.println(-停止);public void onStartTrackingTouch(SeekBar seekBar) /System.out.println(开始-);public void onProgressChanged(SeekBar seekBar, int progress,boolean fromUser) /System.out.println(我的值在发生改变: + progress);/设置音量的大小audioManager.setStreamVolume(AudioManager.STREAM_MUSIC, progress,1););/1.为imageStart这个图片按钮添加一个单击事件imageStart.setOnClickListener(new OnClickListener() public void onClick(View v) /用来标记是否为播放状态 (0:初始状态,1:播放状态,2:暂停状态)if( falg = 0 )/0:初始状态/调playMusic方法进行音乐 播放MusicTestActivity.this.playMusic(musiclist.get(currentListItem);/把播放状态的图片切换成暂停状态的图片imageStart.setImageResource(R.drawable.pause);falg = 1 ;else if(falg = 1)/1:播放状态/暂停播放mediaPlayer.pause();/把暂停状态的图片切换成播放状态的图片imageStart.setImageResource(R.drawable.start);falg = 2 ;else if(falg = 2)/2:暂停状态mediaPlayer.start();/播放/把暂停状态的图片切换成播放状态的图片imageStart.setImageResource(R.drawable.pause);falg = 1;);/2.停止按钮进行事件处理()imageStop.setOnClickListener(new OnClickListener() public void onClick(View v) falg = 0 ;imageStart.setImageResource(R.drawable.start);mediaPlayer.seekTo(0);/musicBar.setProgress(0);mediaPlayer.stop();/停止);/4.下一首imageNext.setOnClickListener(new OnClickListener() public void onClick(View v) falg = 1 ;imageStart.setImageResource(R.drawable.pause);currentListItem = (currentListItem+1)%musiclist.size();MusicTestActivity.this.playMusic(musiclist.get(currentListItem););/5.上一首imageLast.setOnClickListener(new OnClickListener() public void onClick(View v) falg = 1 ;imageStart.setImageResource(R.drawable.pause);currentListItem = (currentListItem-1+musiclist.size()%musiclist.size();MusicTestActivity.this.playMusic(musiclist.get(currentListItem);); 第4章 结果及分析对程序进行测试时,首先将eclipse切换到DDMS窗口,打开mnt文件夹,选中sdcard,点击右上角的图标,则可以向sdcard中添加音乐,如图4-1所示。添加成功后,歌曲会出现在sdcard目录下,如图4-2所示;图 4-1 DDMS界面图 4-2 音乐添加成功界面然后运行程序,弹出如下图4-3所示播放器主界面;图4-3播放器主界面 其中上面的拖拉条为设置音量大小拖拉条,下面的为歌曲进度拖拉条,单击播放列表中任一首便会开始播放歌曲,同时,歌曲时间也会显示,并与歌曲同如图4-4所示;图 4-4 歌曲播放界面图4-5 拖拉歌曲 通过本次实习,应当对Android等达到熟练运用的程度,同时应该对java语言在Android平台运用有一个非常清晰、明了的认识。 并且通过在专业老师的指导下独立的完成系统代码的编写,在整个系统完成以后,学会将所编写代码加以运用,熟练,老师课上讲的东西课后要自己多动手去消化吸收,这样才能起到好的作用。 毕业实习是学生了解和认识企业事业单位对专业人才需求的重要途径,是学生进入职场之前,增加对专业认识的一个必不可少的学习阶段。通过毕业实习,增进对从事本专业的自豪感以及责任感,选好入职方向,做好人生职业规划。为毕业之后能够进入工作状态并且能够更好地工作,打好一定的基础。第一个星期时间,熟悉了android系统的起源和发展,掌握了android的工作方式并搭建起了android开发的环境。在大二已经接触学习了java语言的基础上学习android开发,相对来说轻松了许多。Java的基础语法,面向对象的编程方法和思想,消息传递都是十分熟悉,比较容易上手的。接下来的一周,开始正式建立android工程并做一些简单的编程和开发,包括熟悉android开发环境,android工程中各个文件及其作用,到简单的界面布局和控件使用。为加深印象,增加教学效果,老师带领着大家一步一步做了一些小型的应用,以熟悉各个控件。所有这些,都是为了第三周,开发一个简易的音乐播放器做准备。虽然这个小应用程序还有很多不足之处,比如没有实现在点击歌曲是获得歌曲的名字显示在界面上,没有同步显示歌词等功能,但这对我们的毕业实习也是个完美的结局,至于其他功能,有我们自己课后去加以完善。附录:实习记录2013年3月4日 周一 今天开始毕业实习了,相比之前的的认识实习,生产实习之类的,毕业实习更多的是动手实践,以及对IT行业内最新流行的技术。上午去见识了一下,毕业实习主要内容是老师来讲授安卓开发的有关知识,感觉收获很多,是自己对现在的状况以及环境有了一个更深的了解,对将来可能会面临的情况有了一个确切的体会。 虽然我是即将要毕业的学生,但对于这个课程的重视程度依然很高,因为毕业实习是我们进入社会工作的一个冲刺阶段,主要通过毕业实习让我们学习到关于最新的专业知识,让有些还未找到工作的同学能够有一个新的发展方向,这次的实习主要是以软帝的老师过来学校给我们进行培训,培训的大概内容是安卓基本知识,安卓项目开发等。今天实习的主要内容是明产实习的任务与要求。2013年3月5日 周二 今天开始我们算是正式开始了毕业实习,主要任务是从开发工具到基本语法,主要是配置安卓SDK环境,建立安卓工程。接着老师将Android工程中的配置文件讲解清楚,主要包括R.java,main.xml,string.xml文件。其中R.java中的内容为自动生成,无法对其进行修改,在增加或者进行修改代码时会报错。String.xml用来把应用中出现的文字单独存放在string.xml文中。这样在进行修改的时候就不用修改程序内容。另外一方面为了减少应用的体积,降低数据的冗余。Main.xml文件用来对界面进行布局。XML布局资源必须被存储在项目目录的/res/layout下。 2013年3月6日 周三 今天的实习主要是接着昨天讲的main.xml文件,讲述android中的各种布局方式,时间的关系,今天只讲述了一种布局方式,线性布局方式。线性布局在屏幕上垂直地或水平地组织用户界面控件或者小工具。线性布局是最简单,Android开发者使用得最多的布局类型之一。线性布局的作用就像它的名字一样,当布局方向设置为垂直时,它里面的所有子控件被组织在同一列上。当布局方向设置为水平时,所有子控件被组织在一行中。另外讲的是用oncreatelisten()设置监听。2013年3月7日 周四 今天的主要任务是继续讲解android中的剩下几种布局方式,包括:表格布局,相对布局,完成一个相对布局的小练习,实现东南西北中的小布局。 表格布局即tableLayout。表格布局通过行、列的形式来管理组件,TablelLayout并不需要明确地声明包含多少行、多少列,而是通过TableRow,以及其他组件来控制表格的行数和列数。TableRow也是容器,因此可以向TableRow里面添加其他组件,没添加一个组件该表格就增加一列。如果想TableLayout里面添加组件,那么该组件就直接占用一行。在表格布局中,列的宽度由该列中最宽的单元格决定,整个表格布局的宽度取决于父容器的宽度(默认是占满父容器本身)。相对布局中主要是通过两个或者多个组件之间的方位布局,对齐方式等。拿小练习说,先将“中”放在屏幕中央,然后将东放在中的右边,进行上对齐或者下对齐的方式。依次再将南西北进行布局。2013年3月8日 周五 今天的实习的任务主要是讲解5种布局方式中的最后一种,绝对布局。绝对布局比其他的布局方式在布局上更加容易,将布局方式选择为绝对布局以后可以直接采用拖控件的方式进行布局。今天主要实现的是在面板上面实现用户名,密码的编辑框,确定、取消按钮,以及一个滚动面板,分别在其中输入用户名和密码,点击确定按钮会将用户名中的用户名与密码框中的密码分别写入到文本框中。每点击确定按就一次就追加输出到文本框中。其中按钮点击事件是由添加内部类的方式为按钮加载监听,利用append()方法进行追加输出。2013年3月11日 周一 时间过得真快,转眼一个星期就过去了。第一个星期我们的主要任务是在学习有关android的基础知识,主要包括各种布局方式及一些常用组件,这个星期,接着闪个星期讲解android中的组件,主要介绍的组件有ImageView,radiobutton,checkBox灯按钮,主要实现的联系时对小灯泡进行亮灯熄灯的操作,其实质是在点击关灯或者熄灯按钮的时候将两张图片进行切换,主要的内容包括如何将radiobutton实现只有一个按钮被选中(将不同的radiobutton放在radiogroup上就可以实现只选中一个button)。2013年3月12日 周二今天讲解的依然是设置图片,进行设置图片上一张,下一张,以及设置图片的透明度,首先选好图片进行设置,将图片存放在数组中,记录一个变量用来设置当前图片的标号(即数组的下标),点击下一张按钮时,用当前下标模除数组长度,这样可以防止下标越界的异常,同理按上一张按钮显示当前图片的上一张,另外一个是设置图片透明度,利用alpha变量设置图片当前透明度为0,利用按钮设置图片透明度,每点击一下按钮,变量alpha的值就会减少,相应图片透明度就会减少。同样道理,点击透明度增加时,alpha变量的值就会增加,相应图片透明度就会增加。2013年3月15日 周五 今天我们的主要任务是完成两个控件的学习,一个是AutoCompleteTextView,该控件在android平台下的代码已经封装好,主要功能是实现在文本框中输入内容,系统可以根据输入的内容给以与输入内容相关的提示。在程序代码中,可以设置在输入多少个字符给以提示,

温馨提示

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

评论

0/150

提交评论