zoukankan      html  css  js  c++  java
  • Android高仿雅虎天气(两)---代码结构分析

    版本已经升级到1.0.1

    源码地址:

    GitHub:https://github.com/way1989/WayHoo

    OsChina:http://git.oschina.net/way/WayHoo


    本例使用了6个库代码和1个主工程代码。


    一、6个库代码如下图所示:


    其中

    ①.MenuDrawer、ViewPagerIndicator、ShowcaseView、SwipeBack都是Github上有名的侧边栏菜单开源库,我这里未做修改,直接引用,感谢开源的力量。

    ②.PullToRefresh也是Github上有名的下拉刷新开源库,我做了一些小修改,主要是将雅虎下拉刷新的效果添加到其中。

    如下图所示:



    ③.weather-lib就是我之前和大家分享的小米天气源,只是加入了本地缓存,也不作多介绍,请参考:http://blog.csdn.net/way_ping_li/article/details/29669045


    二、主代码结构如下图所示:



    其中:

    com.way.adapter:所有适配器,包括ListView和ViewPager之类。

    com.way.beans:所有Java Bean存放的地方。

    com.way.common.util:所有工具类存放地方。比如网络判断、系统工具、时间工具等等。

    com.way.db:即本工程使用的数据库管理类,就一个文件CityProvider.java,本人比较喜欢使用ContentProvider,确实感觉比直接操作数据库来得方便。而且可以同时处理一个数据库的多个表。只是uri不同,switch case时多判断一下即可。

    com.way.fragment:本工程使用到的Fragment,只有一个文件。

    com.way.ui.view:所有自定义View。其中值得一提的是TouchDispatchView,顾名思义是分配touch事件的View,由于本代码使用的是scrollview作为下拉刷新,ListView用来显示数据。所以两个View都需要touch事件,就需要一个父容器来分配他们的touch事件。

    com.way.yahoo:所有activity所在包。


    好了。今天就到此结束,下次和大家详细分析以下3个方面:

    ①.主界面上滑变模糊,背景跟随滑动。

    ②.ListView和GridView中遇到多类型item的处理。

    ③.ViewPager使用fragment的缓存与优化。

    谢谢!



  • 相关阅读:
    【PC Basic】CPU、核、多线程的那些事儿
    为什么要使用 do while(0)?
    DPDK CAS(compare and set)操作
    编程中Foo,Bar 到底是什么意思
    如何用Python进行ARP攻击?
    有哪些有趣的化学方程式?
    1636. 按照频率将数组升序排序
    1046. 最后一块石头的重量
    1122. 数组的相对排序
    459. 重复的子字符串
  • 原文地址:https://www.cnblogs.com/mengfanrong/p/4557768.html
Copyright © 2011-2022 走看看