Android开发之相关第三方

模块分析

  • 常规模块:
    • 网络访问
      Android原生:HttpURLConnection、HttpClient、AsyncTask
      常见三方库:XUtils、Volley、OkHttp
    • 网络缓存
      针对网络请求的内容进行缓存,比如说缓存服务器响应的Json数据到File、SP或者数据库,比如图片缓存
    • 数据解析
      XML:DOM解析、SAX解析、Pull解析
      Json:JsonObject、Gson、FastJson
    • 网络协议的封装
      封装服务器的接口,方便我们发起网络请求
    • 图片加载以及缓存
      XUtils、Volley、UniversalImageLoader、Picasso、Glide、Fresco
    • UI展现
      对整个项目UI框架的一个抽取
    • 控件查找
      ButterKnife
      ButterKnife:
采用ButterKnife来获取控件实例。
* 导入ButterKnife的Jar包,并添加依赖
* 安装ButterKnife的Android Studio插件
方式一:打开“Settings -> Plugins -> 搜索Android ButterKnife Zelezny -> install -> 安装后重启Studio”
方式二:打开“Settings -> Plugins -> Install Plugin from disk -> 选择下载好的插件 -> 安装后重启Studio”,插件包:

在Java代码中,光标选中布局xml,比如把光标放到“R.layout.activity_main”上,按下ALT + INSERT,选择“Generate ButterKnife Injections”,插件将自动生成注解代码。
  • 不常规模块:
    • 聊天模块
      环信、融云、网易云信、XMPP
    • 支付模块
      支付宝、微信、银联
    • 安全模块
      加密算法:AES、DES、RSA

常用的第三方控件

  • 侧滑菜单
    Slidingmenu –> 菜单在内容区域的下方
    DrawLayout –> 菜单在内容区域的上方,与ActionBar、ToolBar联动

DrawLayout :
引入DrawerLayout和ActionBarDrawerToggle,使用DrawerLayout实现侧滑菜单
Android在support-v4包中提供了一个抽屉布局的控件:DrawerLayout
在做侧边栏的时候,我们可以选用SlidingMenu,也可以选用这个DrawerLayout来实现侧拉栏。

使用步骤:
1,添加support-v4包的依赖

compile 'com.android.support:support-v4:23+'

2,修改xml,将根布局DrawerLayout定义主布局
3, 定义菜单布局,注意菜单布局必须指明” android:layout_gravity”属性,告知DrawerLayout这个菜单的划出方向是left还是right。当然,你也可以写2个菜单布局,一个在left,一个在right。

<?xml version="1.0" encoding="utf-8"?>
<!-- 以V4包下的DrawerLayout作为顶层布局 -->
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <!-- 主布局-->
    <FrameLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="#f00"/>

    <!-- Menu布局,注意:必须设置"android:layout_gravity"属性 -->
    <FrameLayout
        android:layout_width="200dp"
        android:layout_height="match_parent"
        android:layout_gravity="left"
        android:background="#0f0"/>

    <!-- 当然,你也可以声明多个Menu布局,比如下面这个从右边划出的Menu -->
    <FrameLayout
        android:layout_width="200dp"
        android:layout_height="match_parent"
        android:layout_gravity="right"
        android:background="#00f"/>
</android.support.v4.widget.DrawerLayout>

,4,使用ActionBarDrawerToggle与DrawerLayout联动
构建ActionBarDrawerToggle对象,并且将ActionBarDrawerToggle与DrawerLayout进行绑定。
注意:ActionBarDrawerToggle在v4包和v7包下都有,这里我们使用v7包下的,因为v4包下的在21版本及以上的系统中没有动画效果,已经过时了,不再使用。

/**
 *  初始化ActionBarDrawerToggle
 */
private void initActionBarDrawerToggle() {
    mToggle = new ActionBarDrawerToggle(this, mDrawerLayout, R.string.open, R.string.close);
    //同步状态方法-->替换默认回退部分的UI效果
    mToggle.syncState();
    //设置drawerLayout的监听 --> DrawerLayout拖动的时候,toggle可以跟着改变ui
    mDrawerLayout.setDrawerListener(mToggle);
}
//除此之外,为了通过点击Home按钮,控制DrawerLayout的打开和关闭,还需重写onOptionsItemSelected方法,进行相应的处理:
    /**
     * 点击ActionBar的home按钮会执行该方法,所以在该方法中做判断
     */
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
            case android.R.id.home:
                mToggle.onOptionsItemSelected(item);
                break;
        }
        return super.onOptionsItemSelected(item);
    }
  • 标题栏
    自己写 –> 简单的实现一块布局XML,大部分应用都是这种方式
    ActionBar –> Android官方提供的标题栏
    ActionBar :
    组成ActionBar的 4大部分
    1,app 图标:包含了 图标,主标题,副标题,回退部分
    2,视图控件:允许用户切换视图。视图切换控件的样式有下拉菜单或选项卡控件,d对应了,标准,list,tab,3种导航模式
    3,操作按钮:在操作栏里,展示出你的 app 中最重要的操作。不能展示在操作栏里的操作,可以自动移到“更多操作”里
    4,更多操作:把不常用的操作放到更多操作里
//得到actionBar的实例
//        getActionBar();//android sdk actionbar
ActionBar supportActionBar = getSupportActionBar();//v4包中

//设置标题
supportActionBar.setTitle("GooglePlay");
//        supportActionBar.setSubtitle("副标题");

//设置图标
supportActionBar.setIcon(R.drawable.ic_launcher);
supportActionBar.setLogo(R.mipmap.ic_action_call);

//显示logo/icon(图标)
supportActionBar.setDisplayShowHomeEnabled(false);//默认是false,默认是隐藏图标

//修改icon和logo显示的优先级
supportActionBar.setDisplayUseLogoEnabled(true);//默认是false,默认是没用logo,用的icon

//显示回退部分
supportActionBar.setDisplayHomeAsUpEnabled(true);//默认是false,默认隐藏了回退部分
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
Toast.makeText(getApplicationContext(), "点击了回退部分", Toast.LENGTH_SHORT).show();
break;

default:
break;
}
return super.onOptionsItemSelected(item);
}
ToolBar --> Android 5.0之后Google推出的用来替代ActionBar的控件
  • Tab标签切换
    自己写 –> 比如HorizontalScrollView + LinearLayout,或者直接自定义控件
    ViewPagerIndicator –> 三方控件
    PagerslidingTabStrip –> 三方控件
    TabLayout –> Android 5.0之后Google官方推出的标签切换控件

  • 轮播图
    自己写 –> 使用Android原生ViewPager控件
    自动轮播
    无限轮播
    按下去的时候停止轮播
    开源控件 –> 比如Banner

  • ListView
    复用convertView
    使用ViewHolder
    分页加载(上滑加载更多)
    目的:分页分批请求数据
    UI实现:
    通过给listview添加footerView,见智慧北京
    ListView中显示几种ViewType,见谷歌市场
    协议支持:
    协议返回一个more字段,见智慧北京
    more有值 –> 可能有加载更多
    more没有值 –> 没有加载更多
    根据请求回来数据的长度判断,见谷歌市场
    服务器返回的数据的条数 == PAGERSIZE –> 可能有加载更多
    服务器返回的数据的条数 < PAGERSIZE –> 没有加载更多了

  • RatioLayout
    按比例设置图片的高度,保证图片不变形

  • 分类
    多种条目的ListView –> ListView中显示几种ViewType

  • 推荐
    飞入飞出效果 –> 三方控件StellarMap

  • 排行
    流式布局 –> 自定义控件FlowLayout

这是一个集成目前Android主流优秀第三方组件、优秀好用的自定义控件、实用工具类封装、以及一些APP共通模块(比如:版本更新、意见反馈、引导界面等等)的开发包,帮助程序员快速开发自己的APP 已集成第三方开源组件: 网络请求库android-async-http 图片异步加载库universal-image-loader Sqlite数据库操作ormlite-android 社会化分享ShareSDK+短信验证码 Zxing二维码库 百度地图定位SDK 谷歌依赖注入库RoboGuice WebService调用库ksoap2 XML解析XStream 动画开源库nineoldandroids 表单验证库android-validation-komensky 更多优秀开源库等待集成... 已封装工具类: HTTP网络通信工具类(ToolHTTP.java),get/post请求,支持多种接口回调 SOAP协议通信工具类(ToolSOAP.java),基于异步回调请求WebService接口 Sqlite数据库操作工具类(ToolDatabase.java),获取DAO、创建表、删除表等API 提示信息对话框工具类(ToolAlert.java),已集成泡泡、土司、对话框三种提示 文件操作工具类(ToolFile.java),assets/raw/xml/shrePerface/等文件读写API 地图定位工具类(ToolLocation.java),读取GPS状态、请求定位、获取经纬度等方法 社会化分享工具类(ToolShareSDK.java),各大开发平台分享API操作 短信验证码工具类(ToolMSM.java),移动/联通/电信三网发送手机短信验证码、异步回调验证结果 字符串操作工具类(ToolString.java),生成UUID、非空非NULL逻辑判断、生成MD5等常用共通方法 数据操作工具类(ToolData.java),自动递归获取表单数据封装成Map、本地数据分页共通方法等 图片操作工具类(ToolPicture.java),生成二维码、验证码、灰度、合成、圆角、水印等操作 读取本地资源工具类(ToolResource.java),反射本地资源文件API,避免依赖R文件,方便jar形式发布 Android单位转换工具类(ToolUnit.java),sp/dp/px互转 自定义Toast工具类(ToolToast.java),自定义背景色、字体颜色、大小、边框等 Properties操作工具类(ToolProperties.java),读写Properties文件操作 网络操作工具类(ToolNetwork.java),获取网络信息、更改切换网络等相关操作 日期操作工具类(ToolDateTime.java),获取日期、日期加减、格式化日期、日期转换等操作 XML操作工具类(ToolXml.java),基于DOM/XMLPullPaser模式解析、生成XML操作 XMPP操作工具类(ToolXMPP.java),基于XMPP协议的相关API操作 适配字体工具类(ToolAutoFit.java),代码根据设备密度自动缩放View的字体大小 LOG相关工具类(ToolLog.java) 功能待续-->切入记录异常日志,并存储文件或上传至服务器 已封装/收集自定义控件: 兼容低版本的SwitchButton 追加自定义属性Value的CheckBox/RadioButton/RadioGroup/SingleSpinner 圆角提示信息TipsView 圆角图片RoundImageView 自定义样式风格ProgressDialog 自定义样式WebView 圆形进度条(RoundProgressBar)、垂直进度条(VerticalProgressBar) 开源优秀自定义控件:imageindicator(图片轮播/引导界面)、pulltorefresh、XListView、TableFixHeaders(水平+垂直滚动+首行+首列冻结表格)、ViewPager
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值