您的位置:首页 > 编程语言

根据仿人人客户端教程,编程实现Demo

2014-12-04 21:25 225 查看
最近一段时间,断断续续的在跟着http://blog.csdn.net/android_ls/article/details/9410055(该博主写的是仿人人的Demo)练习 ,虽然里面没有完整的项目,但是作者提供一些很清晰的思路以及代码,所以我就尝试着根据上面的教程,整合一个Demo出来,来提高自己的编程水准。最后有放上实现的简单Demo

目前完成的环节:1.引导界面;2.人人授权界面;3.滑动界面(包括左侧面板与主面板,自定义layout完成滑动面板功能)---具体代码原作者的博文里面就有,我只是将自己遇到的一些错误,以及一些思路写上而已(不过,由于这段时间没有规划,所以没有记录,可能很多遇到的错误都被遗忘了。。)

具体代码请参考原CSDN博文---代码以及类的名字上有一些小改动

一:引导界面的完成:(写下一些大致步骤)

1.1自定义Application,存放全局变量以及公共资源

1.2定义一个Activity的基类(抽象类) AppBaseActivity(所有的Activity都继承自这个类),里面是Activity的一些共有功能

1.3欢迎界面(SplashActivity),默认启动的Activity---里面有一段透明度变化的图片动画,执行完动画后打开引导界面GuideActivity

1.4引导界面(GuideActivity)界面效果动画原理:每张图片都执行的动画顺序,渐现、放大和渐隐,结束后切换图片和文字又开始执行 渐现、放大和渐隐...,当最后一张执行完渐隐,切换到第一张,从而达到循环效果。

二:人人网授权界面:(一定记得在manifest里面添加权限)

2.1引导界面里面的登录按钮的功能就是打开授权界面(AuthorActivity),里面会判断,如果是第一次授权,则进入人人网授权页面,否则直接进入主界面(TestActivity---这是因为目前的进度只完成到这),关于如何实现授权界面,原作者的博文里面有很详细的介绍。(需要在人人网里面注册开发者帐号,然后拿到对应的API_KEY,SECRET_KEY,APP_ID,所以,如果Demo里面授权出问题,很大程度上是因为你没有从开发者帐号中得到自己的API_KEY)

2.2定义常量类(Constant类,存放所有与授权有关的信息,如URL,API_KEY等)

2.3授权成功后,拿到了accessToken,然后解析json,里面就包含用户ID等信息。比如可以进行用户绑定等

注意:授权这个板块看似很简单,实际上比较麻烦,因为很容易报错,简易新手先去网上搜一些OAuth2.0认证的例子,然后注册人人开发者帐号,拿到自己的KEY,然后在尝试将Demo里面的Key全部替换为自己的KEY。

三:滑动界面(左侧面板的实现)

3.1.授权成功后,进入主界面(本次实现的Demo里面为Testctivity--相当于原文作者博文对应进度中的EveryoneActivity)

3.2.创建一个ScrollerContainer(滑动界面的总控制类,继承自RelativeLayout)---TestActivity里面设置contentView为ScrollerContainer,然后ScrollerContainer包含两个子view,-左侧面板LeftPanelLayout,以及新鲜事面板FreshNewsLayout。然后根据不同的Touch事件,实现滑动效果(原文博文里面有非常详细的讲解,DEMO中也有相应的注释)

3.3.创建一个左侧面板信息类(LeftPanelListItem)-里面实现具体的左侧面板信息,然后通过适配器继承自BaseExpandableListAdapter来装载对饮的信息。

3.4.自定义一个TopMenuNavbar,以及前面自定义了TopNavbar,这些都是可以复用的顶部工具栏。

3.5.给左侧面板中的子数据---属于ExpandableListView里面的对应列设置监听,然后可以给每一项都设置监听项目,使得每一个左侧面板项目都有意义。具体的思路以及代码请参考原文作者的博文。

本次更新---2014/12/04---

---2014/12/5日更新---

1.网络请求JSON---用户信息

1.1自定义JSON解析--了解一些常见的json解析方法

1.2使用GSon解析对应格式的Json---注意的是,使用GSon解析时,层级形式,以及参数名称必须对应一致。

2.网络加载图片,并在本地进行双缓存处理(内存缓存+硬盘缓存)

注意:测试即的API为15,但是API18后里面有一些函数有所更新,所以需要进行版本判断,适应各个版本的手机型号(因为我的测试机是API15的。。。)

具体内容:明天另外开一篇Blog详细介绍。。。更新的Demo挂载在明天的blog上。

---2014/12/6日更新---

今天尝试着写新鲜事界面,结果高了半天,所有的实体类都是用的人人API1.0的---白费功夫(人人居然没有再文档里面进行申明。。。)

结果又得重新写所有的实体类,全部用API2.0形式,然后进行json解析,然后在用ListView,然后创建适配器,将解析完的数据装载到对应的listView里面。

当然了,今天的收获是重新整理了一下,以前有些模糊的概念现在已经比较清晰了。

明天继续。。。

本次的完整Demo:http://download.csdn.net/detail/u010979495/8225917
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐