没有合适的资源?快使用搜索试试~ 我知道了~
Android高级笔记 Android高级笔记 Android高级笔记 Android高级笔记
资源推荐
资源详情
资源评论
Android 高级阶段
目录
Day0606Android 高级 01(Volley)............................................................................1
Day0606Android 高级 02(RecyclerView&CardView)..................................................2
Day0607Android 高级 03(Android5.0 新特性).......................................................4
Day0608Android 高级 04(反射、注解及 Xutils)....................................................7
Day0612Android 高级 05(视频播放&Vitamio).....................................................11
Day0613Android 高级 06(Camera&摇一摇&二维码)..........................................13
Day0614Android 高级 07(第三方分享和登录)....................................................17
Day0615Android 高级 08(EventBus).....................................................................19
Day0616Android 高级 09(加密工具)....................................................................20
Day0617Android 高级 10(网络请求框架)............................................................24
Day0627Android 高级 11(ActiveAndroid 数据库)................................................28
Day0628Android 高级 12(第三方登陆&直播).....................................................29
Day0629Android 高级 13(事件分发机制)............................................................29
Day0701Android 高级 14(多渠道打包发布)........................................................30
Day0705Android 高级 15(热修复&内存检测&NDK 开发).................................35
Day0706Android 高级 16(MVP 开发模式)...........................................................37
Day0606Android 高级 01(Volley)
一、Volley 下载与上传数据;
1.文本内容上传下载步骤:
(1)在 build.gradle 文件中导入依赖包:compile
'eu.the4thfloor.volley:com.android.volley:2015.05.28';
(2)在清单文件中添加访问网络权限,读、写外存权限;
(3)创建 RequestQueue 对象,用于发送请求的请求队列;同时创建
StringRequest 对象,用于打包上传和下载的数据字符串;
(4)初始化数据步骤:
(4-1)初始化请求队列;Volley 对象调用单例模式 newRequestQueue(),传
入上下文对象;
(4-2)初始化 StringRequest 类的请求对象;传入四个参数:
参数 1:请求方式:包括 Request.Method.GET 或 Request.Method.POST,默认为
下载 Request.Method.GET;
参数 2:网络请求路径;
参数 3:实例化的请求监听对象;Response.Listener<T>,在该类中重写
onResponse(String response),进行收到请求结果后的操作;
参数 4:实例化的错误监听对象;ErrorListener,在该类中重写
onErorResponse(VolleyError error),进行出现网络错误的处理;
(4-3)如果是上传数据,在初始化 StringRequest 对象之后,重写该类中的
getParams(),同时抛出 AuthFailureError 错误,该方法返回 Map<String, String>
类型的数据,以键值对的形式上传到网络;
(4-4)在操作事件中,RequestQueue 对象调用 add(),添加 StringRequest 对
象作为不同的请求和上传数据包进行网络操作;
(4-5)onDestroy 中加上 try-catch 语句来捕捉所有异常,以保证这个界面正
常退出;RequestQueue 对象调用 cancelAll()传入”get”和”post”两种不同形式取消
网络;
2、图片上传下载步骤:
(1)在 build.gradle 文件中导入依赖包:compile
'eu.the4thfloor.volley:com.android.volley:2015.05.28';
(2)在清单文件中添加访问网络权限,读、写外存权限;
(3)创建 RequestQueue 对象,用于发送请求的请求队列;同时创建
ImageLoader 对象和 ImageRequest 对象,用于打包下载和上传的图片;
(4)图片下载三种方式:
(4-1)图片请求方式(与文本请求类似):
1)初始化 ImageRequest 类的图片请求对象,传入六个参数:
参数 1:图片下载路径;
参数 2:Response 类的静态监听 Listener<Bitmap>实例化对象,重写
onResponse()传入 Bitmap 对象作为得到的图像;
参数 3:图片宽度大小,正常为 100;
参数 4:图片高度大小,正常为 100;
参数 5:图片色度方式,Bitmap.Config.RGB_565;
参数 6:Response 类的静态监听 ErrorListener 实例化对象,重写
onErrorResponse(),当请求图片错误时调用此方法;
2)将图片请求对象放入请求队列;RequestQueue 对象调用 add(),传入
ImageRequest 对象;
(4-2)图片加载方式:
1)创建 ImageLoader 类的图片加载对象,可以设置图片缓存;传入两
个参数:
参数 1:请求队列 RequestQueue 对象;
参数 2:实现继承 ImageLoader.ImageCache 的自定义图片缓存类;
2)自定义图片缓存类继承 ImageLoader.ImageCache 中,定义一个属性
两个方法:
属性:图片缓存大小:首先确定图片缓存大小,获取系统运行内存,
Runtime.getRuntime().maxMemory()/1024/1024/8 获取当前系统运行内存的 1/8 作
为图片缓存;之后创建 LruCache<String, Bitmap>对象,传入图片缓存大小确定
即可;
重写 getBitmap(String url),在获得图片时调用此方法,返回
LruCach 对象调用 get()传入 url 的 Bitmap 对象;
重写 putBitmap(String url, Bitmap bitmap),在加载图片时调用此方
法,LruCache 对象调用 put()传入 url 下载路径和 bitmap 图片即可;
3)创建 ImageLoader.ImageListener 单例,ImageListener 调用静态方法
getImageListener(),传入三个参数:
参数 1:图片要显示的控件;
参数 2:加载图片前的显示图像资源 Id;
参数 3:加载图片失败后显示图像资源 Id;
4)Loader 对象调用 get()开启下载,传入图片下载路径和 ImageListener
对象两个参数;
(4-3)使用网络图片控件方式 NetworkImageView:
1)初始化 NetworkImageView 控件;
2)创建 ImageLoader 类的图片加载对象,可以设置图片缓存;
3)NetworkImageView 对象调用 setDefaultImageResId()设置加载前的图
片资源 Id;
4)NetworkImageView 对象调用 setErrorImageViewResId()设置加载失败
时的图片资源 Id;
5)NetworkImageView 对象调用 setImageUrl()传入两个参数,设置加载
图片;
参数 1:图片下载路径;
参数 2:ImageLoader 对象;
Day0606Android 高级 02(RecyclerView&CardView)
一、ListView 的封装:
多个 ListView 需要创建基类实现公用方法;
二、RecyclerView:
1. 作用:替代 ListView 和 GridView,可以实现横竖交替,实现表格样式,瀑布
流样式;
2. 创建 RecyclerView 步骤:(android.support.v7.widget.RecyclerView)
(1)当前 module 导入新依赖 jar 包:compile
‘com.android.support:design:23.1.1’;
(2)Activity 中声明并实例化 RecyclerView 控件;
(3)RecyclerView 对象调用 setLayoutManager(),传入不同参数类型:
(3-1)线性布局格式:传入 LinearLayoutManager 对象,传入三个参数:上
下文对象,水平或者垂直布局即 LinearLayoutManager.VERTICAL 或
LinearLayoutManager.HORIZONTAL,是否需要反转数据;
注意:当多列/行反转数据时,显示顺序从左下开始到右上结束;
(3-2)瀑布流格式:传入 StaggeredGridLayoutManager 对象,创建该对象
时,构造方法两个参数:参数 1:分列数;参数 2:
StaggeredGridLayoutManager.VERTICAL 垂直分布;
或参数 2:分行数;参数 2:StaggeredGridLayoutManager.HORIZONTAL 水
平分布;
(3-3)表格布局格式:传入 GridLayoutManager 对象,创建该对象时,传
入四个参数:上下文对象,水平或者垂直显示行数,水平或者垂直布局,是否
需要反转;
(4)RecyclerView 对象调用 setAdapter()传入自定义适配器;
注意:RecyclerView 对象在调用 setAdapter()之前必须调用 setLayoutManager();
(5)自定义 Adapter 继承 RecyclerView.Adapter,同时泛型为当前适配器类中的
自定义 ViewHolder;
(5-1) 重写 onCreateViewHolder(),此方法内只创建 ViewHolder;
(5-2)重写 onBindViewHolder(),此方法内只绑定数据;
(5-3)重写 getItemCount(),返回条目总数;
(5-4)自定义 ViewHolder,同时继承 RecyclerView.ViewHolder 抽象类,在构造
方法中通过控件的资源 id 关联控件;
三、创建 CardView 步骤:(android.support.v7.widget.CardView)
1. 当前 module 导入依赖包:compile ‘com.android.support:cardview-v7:23.1.1’;
2. 静态代码属性:
Orientation=’vertical’垂直方向排列
app:cardEvalation=’10dp’阴影面积的大小
app:cardMaxElevation=’20dp’每个条目之间的距离
app:cardCornerRadius=’20dp’圆角半径
注意:Android5.0 及其以下版本如果 CardView 间隔显示没有,可以设置
margin;
四、RecyclerView 的瀑布流
1. 导入依赖包:compile 'com.android.support:cardview-v7:23.1.1';
2. 在 Activity 中,声明并实例化当前 RecyclerView 对象;
3. 使用 RequestQueue 类型进行网络请求;
4. 添加网络访问权限,读写外存权限;
5. 创建 RecyclerView 控件并实现其适配器;
6. 在每一项的布局文件中,在最外层创建 CardView 控件,包裹该项的内部内容;
7. 创建 StaggeredGridLayoutManager 对象,传入构造方法两个参数:
参数 1:分列数;参数 2:StaggeredGridLayoutManager.VERTICAL 垂直分布;
或参数 1:分行数;参数 2:StaggeredGridLayoutManager.HORIZONTAL 水
平分布;
五、RecyclerView 与 SwipeRefreshLayout 结合:
SwipeRefreshLayout 对象调用 setOnRefreshListener()实现下拉刷新功能;
RecyclerView 对象调用 setOnScrollListener()实现上拉加载下一页功能;
1. 布局文件中,SwipeRefreshLayout 可以放在 RecyclerView 外层;
2. 初始化 SwipeRefreshLayout 布局和 RecyclerView 控件;
3. 设置刷新布局 SwipeRefreshLayout 的刷新条颜色:setColorSchemeColors();
4. 创建 RecyclerView 的布局管理器 LayoutManager 对象,同时网络得到数据,
并配置自定义适配器;
5. 获得数据前,判断当前加载页面是否是第一页:如果是第一页,需要先清空
数据,并刷新适配器之后,再获取网络数据;
6. 在得到数据后,刷新布局停止刷新,SwipeRefreshLayout 对象调用
setRefreshing(false)即可;同时刷新适配器,自定义适配器对象调用
notifyDataSetChanged()即可;
7. 设置下拉刷新:
SwipeRefreshLayout 对象调用 setOnRefreshListener(),传入实现
OnRefreshListener 接口的对象,重写 onRefresh(),在此方法内刷新数据,即获
得第一页数据;
8. 设置上拉加载:
RecyclerView 对象调用 setOnScrollListener(),传入实现 OnScrollListener 接
口的对象,重写两个方法:
重写方法 1:onScrollStateChanged():复用视图控件状态发生改变时调
用此方法,在此方法内判断:条件 1:参数 2newState 与
RecyclerView.SCROLL_STATE_IDLE 相等,条件 2:LayoutManager 对象调用
findLastVisibleItemPosition()与所有数据长度减一的位置相等;如果两个条件均
成立,说明到达当前页面底部,可以加载下一页;
重写方法 2:onScrolled():复用视图控件滚动时调用此方法;
Day0607Android 高级 03(Android5.0 新特性)
一、Snackbar
1.作用:与 Toast 类似,但是可以点击监听;
2.使用:
(1)Snackbar 调用静态类 make(),传入三个参数:View 父组件,文本,显示
时间;
剩余37页未读,继续阅读
资源评论
白少木丿
- 粉丝: 2
- 资源: 8
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功