新浪微博Android开发V.ppt

上传人:本田雅阁 文档编号:3261487 上传时间:2019-08-06 格式:PPT 页数:34 大小:1.16MB
返回 下载 相关 举报
新浪微博Android开发V.ppt_第1页
第1页 / 共34页
新浪微博Android开发V.ppt_第2页
第2页 / 共34页
新浪微博Android开发V.ppt_第3页
第3页 / 共34页
新浪微博Android开发V.ppt_第4页
第4页 / 共34页
新浪微博Android开发V.ppt_第5页
第5页 / 共34页
点击查看更多>>
资源描述

《新浪微博Android开发V.ppt》由会员分享,可在线阅读,更多相关《新浪微博Android开发V.ppt(34页珍藏版)》请在三一文库上搜索。

1、实训项目,新浪微博Android开发,新浪微博功能,新浪微博功能,分层实现,UI层 微博中的各个窗体 logic层 程序的核心控制调度模块,获取UI传递的数据、要执行的任务,调用微博接口,获得网络数据,返回消息,刷新(切换)UI 微博接口层(新浪API已封装) 网络访问层(新浪API已封装),logic层主要类,Task,定义程序中的任务 如:登录,发表新微博,获取用户微博,获取用户详细信息 int taskId Map params,IWeiboActivity接口 所有窗口实现 init()方法 完成初始化 refresh(Objet .args)方法 完成窗体刷新,IWeiboActiv

2、ity,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

3、把当前任务加到集合中,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

4、t) 把当前Activity加入到allActivity中,doTask(Task t) 处理业务逻辑,执行完,移出任务,发回更新消息给主线程,Handler处理消息队列,得到要处理的Activity,调用更新UI方法 refresh(mess),程序架构 登录实现,搭建框架,logic层 创建IWeiboActivity 创建Task 创建MainService UI层 创建Logo类-启动闪屏 创建Login类-登录窗体 创建Main类-程序主窗体(后续需继承自TabActivity),启动全屏,/取消标题 this.requestWindowFeature(Window.FEATURE_

5、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

6、); 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处理登录任务,ru

7、n方法,侦听任务 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()方法,登录扩展功能,记住用户名、密码,自动登录 SharedPref

8、erences 判断网络是否正常 有无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

9、(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 BaseAdap

10、ter 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

11、 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()

12、的那个layout里的组件 如果Activity里如果用到别的layout 比如对话框上的layout,要设置对话框上的layout里的组件(像图片ImageView,文字TextView)上的内容,你就必须用inflate()先将对话框上的layout找出来,然后再用这个layout对象去找到它上面的组件,改变ListView中的布局、内容,View view = LayoutInflater.from(conts).inflate( R.layout.list_moreitems, null); TextView tv =(TextView)view.findViewById(R.id.textView); tv.setText(“刷新“);,完成主UI,谢谢合作! 我们因努力而精彩!,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1