2022年Android移动终端开发大作业[参 .pdf
-
资源ID:34262211
资源大小:199.93KB
全文页数:12页
- 资源格式: PDF
下载积分:4.3金币
快捷下载
会员登录下载
微信登录下载
三方登录下载:
微信扫一扫登录
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
|
2022年Android移动终端开发大作业[参 .pdf
一、概述. 2二、关键技术 . 3三、具体分析 . 5四、心得体会 . 7评分表 . 8名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 12 页 - - - - - - - - - 一、概述音乐播放器,是现代移动设备基础软件之一,简单的音乐播放器能实现读取音乐、显示歌曲、播放音乐、音乐切换等功能,而较为复杂的音乐播放器则能实现联网交互功能,例如点评音乐、分享音乐、好友互动。本文旨在扩展音乐播放器的互动功能,在原先的音乐播放器基础上,扩展了“个人中心”界面,实现了界面间的跳转和简单的个人信息设置。用户可在个人中心界面中实现设置个人信息、接收系统消息、与好友互动等功能,但由于时间原因,只能实现部分界面设计,希望能在以后的研究中完善其他想法部分。本文主要应用了 activity 跳转方法与 layout 布局设计等技术,实现了登入界面 LoginActivity 、歌曲界面 ListActivity 、个人界面 AccountActivty 之间的相互跳转。 本文在 AccoutActivty 中还加入了个人头像ImageView 与个性签名 EditText ,用来显示用户的个人信息,丰富音乐播放器的功能。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 12 页 - - - - - - - - - 二、关键技术本文的扩展中主要用到的控件有:Button 、ImageView 、EditText,首先,为了实现界面的跳转,本文选择了应用了点击Button 跳转的方法,在第一个activity 中加入 Button 控件,为控件添加事件监听器,实现界面跳转。查阅SDK文档可得到 Button 的布局信息:Button 的典型用法如下:本文在扩展的个人用户界面中设置了用户头像与个性签名功能,分别利用了ImageView 与 EditText 控件实现,其基本属性如下:public class MyActivity extends Activity protected void onCreate(Bundle icicle) super.onCreate(icicle); setContentView(R.layout.content_layout_id); final Button button = (Button) findViewById(R.id.button_id); button.setOnClickListener(new View.OnClickListener() public void onClick(View v) / Perform action on click ); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 12 页 - - - - - - - - - 在界面布局上,本文LinearLayout(线性布局)为主,在部分控件设计中应用了 RelativeLayout (相对布局),其重要属性如下:在类的编写中, 本文利用了 Intents and Intent Filters方法实现界面的跳转,在用户信息上使用getIntent方法获取Intent对象,并使用Intent对象的getStringExtra 方法获取传过来的用户名, 再调用 TextView 的 setText 方法显示在 TextView 上。 android: adjustViewBounds /调整其边界以保持其可绘制的高宽比android: baseline /视图中基线的偏移量android: baselineAlignBottom /视图将基于其底边对齐基线android: cropToPadding /被裁剪以适应其填充android: maxHeight /提供最大高度android: maxWidth /提供最大宽度android: scaleType /调整图像大小或移动以匹配此ImageView 的大小android: src /设置 ImageView 的内容 android:hint /设置显示在空间上的提示信息android:numeric /设置只能输入整数,如果是小数则是:decimal android:singleLine /设置单行输入android:password /设置只能输入密码android:textColor /字体颜色android:textStyle /字体, bold, italic, bolditalic android:textSize /大小android:capitalize /以大写字母写 android:baselineAligned /当设置为 false 时,阻止布局对齐其子基线。android:divider /可用作按钮之间的垂直分隔符。android:gravity /指定一个对象应该如何在X 轴和 Y 轴上定位其内容。android:orientation /设置布局是一行还是一列android:weightSum /定义最大权重和。 android:gravity /指定一个对象应该如何在X 轴和 Y 轴上定位其内容。android:ignoreGravity /指示哪个视图不受重力影响。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 12 页 - - - - - - - - - 三、具体分析本文的扩展主要分为layout 页面布局与 class AccounttActivity 编写。在页面布局部分,本文在原先的 actvity_list 布局中加入了一个btn_account ,为 btn_account 添加事件监听器实现界面跳转,当用户点击 btn_account 时,则由歌曲界面跳转到个人界面,查看个人信息;本文还在AccountActivity中放置了 btn_out ,实现个人界面到登入界面的跳转。其关键代码如下:在 class 编写中, 本文利用 getIntent 与 getStringExtra 方法获取 LoginActivity中用户输入的用户名,再调用TextView 的 setText 方法显示在 TextView 上。其关键代码如下: Button accountBtn=(Button)findViewById(R.id.btn_account); /*实例化一个Button 对象,通过 findViewById方法实现layout 中的控件与java 对象的关联 */ accountBtn.setOnClickListener(new View.OnClickListener() Override public void onClick(View v) Intent intent=new Intent(ListActivity.this,AccountActivity.class); startActivity(intent); /*为 Button 添加 OnClickListener 监听器, 并在 OnClick 方法中实现向LoginActivity的跳转 ,通过 startActivity 方法实现Activity 的切换。 */ Button outBtn=(Button)findViewById(R.id.btn_out); outBtn.setOnClickListener(new View.OnClickListener() Override public void onClick(View v) Intent intent = new Intent(AccountActivity.this, LoginActivity.class); startActivity(intent); ); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 12 页 - - - - - - - - - 在实现设计想法时,也遇到过一些困难。例如编写利用intent方法实现activity 跳转语句,在调试中并没有报错,但真机测试时却发生了闪退情况,通过查阅资料找出了代码错误,应该对新设计的layout 布局建立一个 class,并实现一些功能,才在manifest 中申明 AccountActivity ,实现跳转效果。通过多次的测试,以下为本文的程序运行结果: protected void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState); setContentView(R.layout.activity_account); TextView nameTxt = (TextView) findViewById(R.id.txt_name); String name=this.getIntent().getStringExtra(uname); nameTxt.setText(name); /*使用 getIntent 方法获取Intent 对象,并使用Intent 对象的getStringExtra 方法 ,调用TextView 的 setText方法放到 TextView 上显示 */ 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 12 页 - - - - - - - - - 四、心得体会通过这次应用开发设计中,我对安卓开发有了更深刻的了解与认识。从刚开始设计新功能时的迷茫到查阅资料、了解音乐播放器基本功能,确定扩展方向,我学到了许多也认识到了自己的不足。最初,我想扩展“播放模式”功能,可供用户选择单曲循环、 顺序播放、随机播放三种播放模式, 尝试着学习别人的代码,但总是发现错误, 许多方法无法运行, 一次次的调整但还是存在错误,最后只能放弃最初的想法,重新设计新的功能。在设计“个人用户”界面时,我也曾遇到问题:编写的activtiy 无法跳转,用户名无法传递。 我通过查阅网络资料, 翻看老师给的作业示例, 一点一点对比地找出自己的错误,慢慢地调试出想要的结果。这次的安卓开发课程不仅仅教会了我基础的安卓开发知识,更给了我一次锻炼自己、突破自己的机会。在之前的三个小作业中,我学习老师给的例子,研究关键代码, 尝试着运用学到的知识完成每次作业,每一次作业中都有所收获; 而在本次的设计作业中, 多次的错误调试更锻炼了我的意志力,要学好安卓开发就应该不怕失败,对比学习他人的代码,找出自己的错误。勇于调试、勤于学习,这就是我领悟到的学习安卓开发的方法。在这次的设计开发中,我还想增加更多的界面设计,连接数据库,实现其他互动功能, 但由于时间的原因, 不能实现更多的想法, 希望能在以后的安卓开发学习中完善这个任务。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 12 页 - - - - - - - - - 评分表序号评分细则分数得分1 选题符合论文要求且具备一定难度10 2 报告字数与格式符合要求25 3 论文论述清晰、分析准确30 4 论文有相应的实例工程10 5 例子工程代码量10 6 论文原创性15 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 12 页 - - - - - - - - - 附件java 代码package edu.whut.wangwenying.job3; import android.content.Intent; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.ImageView; import android.widget.TextView; import edu.whut.wangwenying.job1.R; public class AccountActivity extends AppCompatActivity protected void onCreate(Bundle savedInstanceState) super .onCreate(savedInstanceState); setContentView(R.layout.activity_account); TextView nameTxt = (TextView) findViewById(R.id.txt_name); Button outBtn=(Button)findViewById(R.id.btn_out); /* 实例化 Button 对象,通过 findViewById 方法实现 layout 中的控件与 java 对象的关联*/ ImageView imageView = (ImageView) findViewById(R.id.imageView); TextView txt_sign=(TextView) findViewById(R.id.txt_sign); EditText edit_sign = (EditText) findViewById(R.id.edit_sign); Button but_move=(Button)findViewById(R.id.btn_move); Button but_fans=(Button)findViewById(R.id.btn_fans); Button but_attention=(Button)findViewById(R.id.btn_attention); Button but_message=(Button)findViewById(R.id.btn_message); Button but_centre=(Button)findViewById(R.id.btn_centre); Button but_setting=(Button)findViewById(R.id.btn_setting); String name=this .getIntent().getStringExtra(uname); nameTxt.setText(name); /* 使用 getIntent方法获取 Intent对象,并使用 Intent对象的 getStringExtra方法, 调用 TextView 的setText 方法放到 TextView 上显示*/ outBtn.setOnClickListener(new View.OnClickListener() Override public void onClick(View v) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 12 页 - - - - - - - - - Intent intent = new Intent(AccountActivity.this , LoginActivity.class ); startActivity(intent); /* 为 Button 添加 OnClickListener监听器,并在 OnClick 方法中实现向 LoginActivity的跳转, 通过startActivity方法实现 Activity的切换。*/ ); Layout 布局设计 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 12 页,共 12 页 - - - - - - - - -