浪微博Android开发V.ppt_第1页
浪微博Android开发V.ppt_第2页
浪微博Android开发V.ppt_第3页
浪微博Android开发V.ppt_第4页
浪微博Android开发V.ppt_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

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

文档简介

实训项目,新浪微博Android开发,新浪微博功能,新浪微博功能,分层实现,UI层 微博中的各个窗体 logic层 程序的核心控制调度模块,获取UI传递的数据、要执行的任务,调用微博接口,获得网络数据,返回消息,刷新(切换)UI 微博接口层(新浪API已封装) 网络访问层(新浪API已封装),logic层主要类,Task,定义程序中的任务 如:登录,发表新微博,获取用户微博,获取用户详细信息 int taskId Map params,IWeiboActivity接口 所有窗口实现 init()方法 完成初始化 refresh(Objet .args)方法 完成窗体刷新,IWeiboActivity,MainService,完成程序调度 接收UI层数据(任务),完成业务逻辑,返回信息,更新UI 在后台运行(继承自Service类) 线程(实现Runnable接口) 不断侦听UI传过来任务消息,MainService工作流程,MainService启动,run() 侦听任务,UI发出任务 newTask(Task t),doTask(Task t) 处理业务逻辑,发回更新消息给主线程,Handler处理消息队列,调用更新UI方法 refresh(mess),MainService成员,List allActivity 保存当前所有Activity,方便切换 List allTask 把当前任务加到集合中,MainService中的方法,public static void newTask(Task t) public void doTask(Task t) public void run() public Activity getActivityByName(String name) Hander handleMessage(Message msg),MainService中方法执行顺序,MainService启动: 清单文件中注册 startService(),启动线程,侦听任务。new Thread()在Oncreate()时,UI发出任务 newTask(Task t) 把当前Activity加入到allActivity中,doTask(Task t) 处理业务逻辑,执行完,移出任务,发回更新消息给主线程,Handler处理消息队列,得到要处理的Activity,调用更新UI方法 refresh(mess),程序架构 登录实现,搭建框架,logic层 创建IWeiboActivity 创建Task 创建MainService UI层 创建Logo类-启动闪屏 创建Login类-登录窗体 创建Main类-程序主窗体(后续需继承自TabActivity),启动全屏,/取消标题 this.requestWindowFeature(Window.FEATURE_NO_TITLE); this.setContentView(R.layout.logo); /取消状态栏 this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);,动画加载-由浅入深,ImageView iv = (ImageView)findViewById(R.id.logo); AlphaAnimation aa = new AlphaAnimation(0.1f, 1.0f); aa.setDuration(3000); iv.startAnimation(aa); /动画加载完,启动Login窗体 aa.setAnimationListener(new AnimationListener() /. ;,登录UI,登录流程,Login消息传递,onCreate() 获取Login窗体用户名、密码 创建一个任务 Task task = new Task(Task.TASK_LOGIN,map); MainService加入任务 MainService.newTask(task); refresh()回调刷新Login UI,登录成功or失败 登录成功进入Main窗体,MainService处理登录任务,run方法,侦听任务 doTask(t) 处理任务 Message mess = handler.obtainMessage(); mess.what = task.getTaskId(); swtich(task.getTaskId()./根据不同的任务,调用微博接口 handler.sendMessage(mess); /发送消息,至队列处理UI allTask.remove(task); /执行任务结束,移出任务 Handler handleMessage()方法 更新UI 根据不同的Activity,调用refresh()方法,登录扩展功能,记住用户名、密码,自动登录 SharedPreferences 判断网络是否正常 有无3G wifi信号 无信号提示用户,网络设置或关闭程序,主UI Tab切换,Tab标签页结构 顶部 2个Button, 1个TextView 中部 ListView 后续布局再完善 底部 可切换的5个Activity 所在Activity高亮显示 包含在TabActivty中,主UI结构,Tab切换,一个Tab对应一个Activity 每个Activity对应一个布局文件 MainActivity继承自TabActivity,Main-添加TabActivity,mth = getTabHost(); TabSpec ts1= mth.newTabSpec(TAB_HOME).setIndicator(TAB_HOME); ts1.setContent(new Intent(Main.this,Home.class); mth.addTab(ts1); TabSpec ts2= mth.newTabSpec(TAB_MSG).setIndicator(TAB_MSG); ts2.setContent(new Intent(Main.this,UserMSG.class); mth.addTab(ts2);,图片切换,类似CSS+JS的功能 ,ListView加载数据Adapter,class MyAdapter extends BaseAdapter public List alls; public Context conts; public MyAdapter(Context con, List st) conts = con; alls = st; . . ,ListView加载数据,public void refresh(Object. args) / TODO Auto-generated method stub switch (Integer) args0).intValue() case REFRESH_WEIBO: process.setVisibility(View.GONE); MyAdapter ad = new MyAdapter(this, (List) args1); lv.setAdapter(ad); ad.notifyDataSetChanged(); break; ,主UI完善 ListView优化,主UI ListView布局,MainActivity布局 title_two_button.xml ListView 底部Tab切换 RadioGroup ListView布局 itemview.xml,Layout.inflate,inflate相当于将一个xml中定义的布局找出来 在一个Activity里如果直接用findViewById()的话,对应的是setConentView()的那个layout里的组件 如果Activity里如果用到别的layout 比如对话框上的layout,要设置对话框上的layout里的组件(像图片ImageView,文字TextView)上的内容,你就必须用inflate()先将对话框上的layout找出来,然后再用这个layout对象去找到它上面的组件,改变ListView中的布

温馨提示

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

评论

0/150

提交评论