




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第9章图形与动画《Android应用开发教程第2版》课后习题参考答案第一章1.主流的Android版本有哪些,各有何特点?Android最早的一个发布版本开始于2007年11月的Android1.0beta,其后发布了多个更新版本。这些更新版本都在前一个版本的基础上修复了bug并且添加了前一个版本所没有的新功能。从2009年4月开始,Android操作系统改用甜点来作为版本代号,这些版本按照大写字母的顺序来进行命名:纸杯蛋糕(Cupcake)、甜甜圈(Donut)、闪电泡芙(Éclair)、冻酸奶(Froyo)、姜饼(Gingerbread)、蜂巢(Honeycomb)﹑冰激凌三明治(IceCreamSandwich)、雷根糖(JellyBean)、奇巧(KitKat)、棒棒糖(Lollipop)、棉花糖(Marshmallow)、牛轧糖(Nougat)、奥利奥(Oreo)、馅饼(Pie)等。此外,Android操作系统还有两个预发布的内部版本,它们分别是铁臂阿童木(Astro)和发条机器人(Bender)。2.Android的系统结构如何?由里向外有如下几层:1.LinuxKernel(Linux内核)Android是在Linux2.6的内核基础之上运行的,提供核心系统服务:安全、内存管理、进程管理、网络组、驱动模型。2.AndroidRuntime(Android运行时)内核之上是核心库和一个叫做Dalvik的JAVA虚拟机。核心库提供了Java语言核心库中包含的大部分功能,虚拟机负责运行程序。3.Libraries(库)Android提供了一组C/C++库,它们为平台的不同组件所使用。开发人员通过ApplicationFramework来使用这些库所提供的不同功能。4.ApplicationFramework(应用程序框架)无论Android提供的应用程序还是开发人员自己编写的应用程序,都需要使用到ApplicationFramework。通过使用ApplicationFramework,不仅可以大幅度简化代码的编写,而且提高了程序的复用性。5.Application(应用程序)Android提供了一组应用程序,包括Email客户端、SMS程序、日历、地图、浏览器、通讯录等。这部分程序均使用Java语言编写。3.Android主要用于什么设备之上,可以用于PC么?Android是一种基于Linux的自由及开放源代bai码的操作系统,主要使用于移动设备,如智能手机和平板电脑在PC上运行安卓系统有很多种方法,比如虚拟设备模拟器(如Genymotion)、可引导USB版本,以及安卓模拟器(如BlueStacks)。还有PC上的Androidx86开源项目,A让PC的都可以运行安卓系统。4.Windows下搭建Android应用程序开发环境需要什么软件,如何安装及配置,请简要说明过程。Android开发程序使用的是Java语言,由于AndroidStudio安装时自带JRE,所以不需要单独配置Java环境。在Windows下搭建Android的开发环境主要完成以下工作:安装用于程序开发的IDE:AndroidStudio。安装并升级Android的开发工具包:SDK。创建Android虚拟设备:AVD。(安装配置过程略)5.模拟器的功能是什么?有些什么设置参数?Android模拟器是用软件模拟终端设备,提供一个虚拟的运行环境,以方便开发人员测试app功能。常用设置参数如下:MemoryOptions:模拟器的运行内存大小。Internalstorage:是模拟器内置存储空间大小,用于存放安装程序和程序数据SDcard:SD卡存储空间大小AVDName:模拟器的名称Device:根据一些实际手机配置提供的一些模拟器设置,包括分辨率和运行内存大小、内置存储空间大小Target:选择模拟器的Android系统版本CPU/ABI:是根据下载的系统镜像文件来的,一般是arm的,intel的会很快Front/BackCamera:选择前后镜头设备VMheap:设置VM缓存堆栈的大小6.开发一个Android应用程序,显示效果为黑底白字,界面正中显示“Androidisveryeasy!”。提示:新建android项目,放入一个TextView元件,设置TextView的Text属性为“Androidisveryeasy!”,在模拟器中运行项目。7.修改模拟器的输入法为搜狗输入法打开模拟器,找到“setting”-“language”功能,找到“input”菜单,进行设置即可。第二章1.横向和纵向分别显示“赤橙黄绿青蓝紫”七个字,每个字显示为本身所表示的颜色。提示:加入线性布局管理器,设置“orientation”属性为“Vertical”,再加入两个线性布局管理器,其中第一个线性布局的“orientation”属性为“Horizontal”,在其中加入7个TextView,按顺序分别设置Text属性为“赤橙黄绿青蓝紫”的一个字,并设置TextColor属性为对应的颜色;第二个线性布局的“orientation”属性为“Vertical”,在其中加入7个TextView,按顺序分别设置Text属性为“赤橙黄绿青蓝紫”的一个字,并设置TextColor属性为对应的颜色。2.开发一个程序,实现一个漂亮的登录界面,需要应用字符串资源、颜色资源、尺寸资源进行界面管理。略3.将第一题中的字显示为两个字一行,最后一行一个字。提示:将后加入的两个线性布局改为TableLayout,加入四个TableRow,每个TableRow中加入两个TextView。4.让第一题中的文字由大到小显示。提示:依次设置每个TextView中的TextSize值得大小。5.让第一题中显示的文字可以自适应语言设置,显示中文、英文、繁体中文。提示:将TextView中显示得文字使用String进行管理,分别建立对应的中文、英文、繁体中文的资源字符串。6.在第一题的基础上增加菜单,有两项,分别是“反向显示”和“正常显示”。提示:创建菜单资源,在Activity中重写onCreateOptionsMenu方法,加载菜单。7.自己设计一张9-Patch图片,并应用图片为窗体添加一个不失真背景。提示:在SDK的tools目录下打开9-patch工具,编辑图片,将图片作为资源保存在项目中,设置项目布局的背景为图片资源。8.开发一个程序,其中某个按钮能根据状态的不同选择不同的图片背景显示。提示:采用StateListDrawable资源方式实现。第三章设计一个界面可以实现常见的计算器屏幕和按键的布局。提示:布局采用表格布局或多种布局的灵活嵌套,推荐使用约束布局。设计两个单选按钮,单击它们可以显示不同时长的提示信息。提示:设置按钮单击监听器,在其中使用Toas显示提示信息。注意设置Toast.LENGTH_SHORT或Toast.LENGTH_LONG参数检查用户是否按下“回退”键,让它失去“关闭程序”的功能,另外在界面右下位置显示一个“退出”按钮,完成“关闭程序”的功能。提示:onKeyDown回调函数的使用,检测Keycode。按钮的单击监听,使用finish()关闭程序。开发一个程序,实现通过ImageView显示带边框的图片。(略)有五个商品供选择购买,设计界面显示其品名及价格,用户可以多选,选择完毕后按“结账”按钮,系统在屏幕下方显示总金额。提示:CheckBox的使用开发一个程序,使用AlertDialog实现一个带图标的、“确定”按钮、“取消”按钮、“中立”按钮的对话框。(略)开发一个程序,使用AlertDialog实现一个多选列表对话框(略)开发一个程序,使用Notification实现一个在状态栏上显示备忘通知。可以查看通知的详细内容,并且该通知在查看后不删除。(略)开发一个程序,应用AlarmManager实现定时更换桌面背景的功能。(略)第四章开发一个程序,实现在屏幕上显示一个按钮,单击按钮时系统转到另一个Activity中。提示:创建两个Activity,分别在AndroidManifest配置中添加配置;在按钮单击监听器的单击事件中,使用StartActivity启动另一个Activity。实现一个关于样式的Activity展示(程序启动界面中,单击关于按钮时,弹出关于介绍的对话框)。提示:采用沉浸式显示Activity开发一个程序,实现在两个Activity中传递一个字符串,并在第二个Activity中弹出提示框显示传递的值。提示:使用Bundle包装数据,作为Intent对象的参数传递。实现一个星座查询的程序,用户在一个界面上输入生日,在另一个界面上展示星座及性格介绍。提示:同第三题实现一个带城市(独立城市列表页面)选择的用户注册界面。提示:使用StartActivityForResult启动另一个Activity实现一个古诗阅读程序,程序左边显示诗名列表,右边显示对应的诗文内容。提示:仿照4.3节案例实现实现一个图片浏览展示的程序,左边列表是图形缩略图,右边展示对应图的大图。提示:程序仿照4.3节案例,图形缩略图采用Gridview组件,右边大图采用ImageView第五章1.编写一个程序,使用Intent实现视频播放。提示:1.播放本地视频Intentintent=newIntent(Intent.ACTION_VIEW);Stringtype="video/mp4";Uriuri=Uri.parse("file:///sdcard/test.mp4");intent.setDataAndType(uri,type);startActivity(intent);2.播放网络视频Intentintent=newIntent(Intent.ACTION_VIEW);Stringtype="video/*";Uriuri=Uri.parse("/12237832415.3gp");intent.setDataAndType(uri,type);startActivity(intent);如果不设置type的话,这样写:Intentintent=newIntent(Intent.ACTION_VIEW);
Uriuri=Uri.parse("/12237832415.3gp");
intent.setData(uri);
startActivity(intent);
2.编写一个程序,使用Intent打开网页。提示:Intentintent1=newIntent(Intent.ACTION_VIEW);intent1.setData(Uri.parse(""));startActivity(intent1);3.开发一个程序,实现当电池电量低于5%时给出提示。提示:采用BroadcastReceiver。IntentFilterintentFilter=newIntentFilter();intentFilter.addAction(Intent.ACTION_BATTERY_CHANGED);batteryReceiver=newMyReceiver();registerReceiver(batteryReceiver,intentFilter);4.开发一个程序,实现当安装新应用时给出提示。(略)5.编写一个程序,使用线程实现每隔一分钟更换一次窗体背景。提示:使用线程结合handler实现6.编写一个程序,使用线程和消息传递机制实现水平移动的图标。提示:handler、Message的使用7.开发一个程序,使用线程和消息传递机制实现一个来回飘动的气球。提示:handler、Message的使用,气球可采用图片代替。第六章1.编写一个继承IntentService类的服务类,在启动10秒后停止服务,并在LogCat中输出停止服务信息。@Override
protectedvoidonHandleIntent(Intentintent){
//Normallywewoulddosomeworkhere,likedownloadafile.
//Foroursample,wejustsleepfor5seconds.
longendTime=System.currentTimeMillis()+10*1000;
while(System.currentTimeMillis()<endTime){
synchronized(this){
try{
.。。。。。。。。。。
}catch(Exceptione){
}
}
}2.编写一个继承Service类的服务类,在启动10分钟后,以通知的方式提示用户。提示:思路同题1,注意NotificationManager消息的使用3.编写一个程序,以列表的形式显示当前运行服务的详细信息。提示:publicstaticvoidlistServices(ContextmContext){ActivityManageractivityManager=(ActivityManager)mContext.getSystemService(Context.ACTIVITY_SERVICE);List<ActivityManager.RunningServiceInfo>serviceList=activityManager.getRunningServices(100);if(!(serviceList.size()>0)){return;}for(inti=0;i<serviceList.size();i++){LogUtils.d("caoservicename="+serviceList.get(i).service.getClassName());}}4.编写一个程序,查看本地服务或远程服务的声明周期。第七章应用程序一般允许用户自己定义配置信息,如界面背景颜色、字体大小和字体颜色等,尝试使用SharedPreferences保存用户的自定义配置信息,并在程序启动时自动加载这些自定义的配置信息。提示:SharedPreferencespreferences=getSharedPreferences(“myfile”,MODE_PRIVATE);SharedPreferences.Editoreditor=preferences.edit();editor.putString(“userName”,“jake”);……mit();尝试把第1题的用户自定义配置信息,以INI文件的形式保存在内部存储器上。提示://以私有模式建立文件FileOutputStreamfos=openFileOutput(“myfile.ini”,Context.MODE_PRIVATE);fos.write(“…………..”);//向文件中写入数据,将字符串转换为字节fos.flush();//将所有剩余的数据写入文件fos.close();简述在嵌入式系统中使用SQLite数据库的优势。独立性:SQLite数据库的核心引擎本身不依赖第三方软件,使用它也不需要“安装”。所以在部署的时候能够省去不少麻烦。轻量级:SQLite和C/S模式的数据库存软件不同,它是进程内的数据库引擎,因此不存在数据库的客户端和服务器。使用SQLite,一般只需要带上它的一个动态库,就可以使用它的全部功能。而且这个动态库的尺寸相当小。隔离性:SQLite数据库中所有的信息(比如表、视图、触发器等)都包含在一个文件内,方便管理和维护。安全性:SQLite数据库通过数据库级上的独占性和共享锁来实现独立事务处理。这意味着多个进程可以在同一时间从同一数据库读取数据,但只有一个可以写入数据。在某个进程或线程向数据库执行写操作之前,必须获得独占锁定。在发出独占锁定后,其他的读写操作将不会再发生。跨平台:SQLite数据库支持大部分操作系统,除了在电脑上使用的操作系统之外,很多手机操作系统同样可以运行,比如Andorid、WindowsMobile、Symbin、Palm等。多语言接口:SQLite数据库支持很多语言编程接口,比如C/C++、Java、Python、dotNet、Ruby、Perl等,得到更多开发者的喜爱。分别使用手动建库和代码建库的方式,创建名为test.db的数据库,并建立staff数据表,表内的属性值如表7-7所示,同时提供表数据的插入、修改和删除操作方法。表7-7staff表结构属性数据类型说明_idinteger主键nametext姓名sextext性别departmenttext所在部门salaryfloat工资提示:修改教材中MyDBHelper类中表名称为staff,修改其中的表创建语句为此题结构。开发一个程序,使用列表显示联系人姓名,当单击列表项时显示联系人手机号码。提示:权限配置:<uses-permissionandroid:name="android.permission.READ_CONTACTS"/><!读取联系人><uses-permissionandroid:name="android.permission.WRITE_CONTACTS"/>主要代码://联系人的Uri,也就是content://com.android.contacts/contactsUriuri=ContactsContract.Contacts.CONTENT_URI;//指定获取_id和display_name两列数据,display_name即为姓名String[]projection=newString[]{ContactsContract.Contacts._ID,ContactsContract.Contacts.DISPLAY_NAME};//根据Uri查询相应的ContentProvider,cursor为获取到的数据集Cursorcursor=context.getContentResolver().query(uri,projection,null,null,null);String[]arr=newString[cursor.getCount()];inti=0;if(cursor!=null&&cursor.moveToFirst()){do{try{Longid=cursor.getLong(0);//获取姓名Stringname=cursor.getString(1);//指定获取NUMBER这一列数据String[]phoneProjection=newString[]{ContactsContract.CommonDataKinds.Phone.NUMBER};//根据联系人的ID获取此人的电话号码CursorphonesCusor=context.getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI,phoneProjection,ContactsContract.CommonDataKinds.Phone.CONTACT_ID+"="+id,null,null);//因为每个联系人可能有多个电话号码,所以需要遍历if(phonesCusor!=null&&phonesCusor.moveToFirst()){do{。。。。。。}while(phonesCusor.moveToNext());}i++;}catch(PinyinExceptione){e.printStackTrace();}}while(cursor.moveToNext());}开发一个程序,根据联系人应用中保存的数据,实现自动补全姓名的功能。提示:参考题5的样例开发一个程序,实现删除联系人应用中指定的联系人信息。提示:参考题5的访问方式开发程序,实现将个人应用数据提供给其他程序访问。提示:Contentprovider的使用第八章1.开发一个程序,实现播放SD卡中的MP3文件。提示:(注意外部sdcard设备的访问权限处理)/实例化MediaPlayerMediaPlayerplay=newMediaPlayer();//指定播放文件的路径play.setDataSource("/sdcard/music.mp3");//准备play.prepare();//开始播放play.start();2.开发一个程序,实现播放SD卡中的3gp文件。提示:同题13.开发一个程序,实现音频的录制。提示:(注意外部摄像头、sdcard设备的访问权限处理)使用mediarecorder处理。第九章开发一个程序,实现在屏幕上绘制一个空心的六边形和一
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度汽车货运安全免责协议书
- 二零二五年度金融科技投资人投资协议
- 二零二五年度寒假工劳动权益保障协议
- 二零二五年度黄金首饰典当与房产抵押结合借款协议
- 二零二五年度外墙施工进度及质量验收协议
- 网页建设合同范本
- 2025年度智能自动化租厂房安全协议责任书
- 科技前沿基于大数据的智能交通管理平台构建
- 二零二五年民间私人房产质押房产抵押借款合同争议解决条款
- 2025年度解除劳动合同员工经济补偿金核算及发放合同
- 提高留置针规范使用率
- 4月23日幼儿园世界读书日读书绘本名人读书故事春暖花开日正是读书时课件
- 指导青年教师课堂教学活动方案
- 情绪管理团体辅导专项方案
- 一年级美术课后辅导方案-1
- 免疫学基础与病原生物学课件
- 2022版义务教育(地理)课程标准(附课标解读)
- 《锻造安全生产》课件
- 小学数学1-6年级(含奥数)找规律专项及练习题附详细答案
- 中考英语阅读理解(含答案)30篇
- 《同济大学简介》课件
评论
0/150
提交评论