- 博客(16)
- 资源 (3)
- 收藏
- 关注
原创 Android 8.0(Oreo) 适配
前阵子,市场中心丢来一个锅,说华为、360、应用宝要求开发者适配 Android P,否则应用将被不推荐、隐藏甚至下架(华为),从 2018 年 8 月 1 日起,所有向 Google Play 首次提交的新应用都必须针对 Android 8.0 (API 等级 26) 开发; 2018 年 11 月 1 日起,所有 Google Play 的现有应用更新同样必须针对 Android 8.0。吓得...
2018-11-01 20:03:44
492
原创 RxJava2知识回顾之RxJava基本操作符
Map操作符的作用是对上游发送的每一个事件应用一个函数,使得每个事件按照函数的逻辑进行变换,通过Map就可以把上游发送的每一个事件,转换成Object或者集合. /** * map关键词主要是将发送事件通过Map转换成另一种下游所需要的目标类型 */ public static void MapTest(){ Observable.create...
2018-10-14 11:54:19
232
原创 RxJava2知识回顾之RxJava线程调度
RxJava默认的发送事件与接收事件均与当前线程在同一个线程。切换线程就需要使用到Schedulers/AndroidSchedulers进行切换。简单的来说, subscribeOn() 指定的是上游发送事件的线程, observeOn() 指定的是下游接收事件的线程。//设置上游发送事件在新的子线程,下游接受事件在主线程 observable.subscribeOn...
2018-09-29 19:18:38
265
原创 RxJava2知识回顾之RxJava基本流程
今天回顾下RxJava2的基本流程步骤一:引入RxJava和RxAndroid implementation 'io.reactivex.rxjava2:rxjava:2.2.0' implementation 'io.reactivex.rxjava2:rxandroid:2.0.2'步骤二:RxJava是基于观察者模式,需要创建一个被观察者,一个观察者对象,分别对应...
2018-09-27 20:20:46
222
原创 LayoutInflater你该知道的事
LayoutInflater的获取方式有两种:LayoutInflater lif = LayoutInflater.from(Context context);LayoutInflater lif = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); public static Layo
2018-01-18 20:54:28
337
原创 FragmentStatePagerAdapter与FragmentPagerAdapter的区别与使用场景
ViewPager是android扩展包v4包中的类,这个类可以让用户左右切换当前的view1)ViewPager类直接继承了ViewGroup类,所有它是一个容器类,可以在其中添加其他的view类。2)ViewPager类需要一个PagerAdapter适配器类给它提供数据,适用于View。3)ViewPager经常和Fragment一起使用,并且提供了专门的FragmentPage...
2018-01-10 19:02:26
465
原创 设计模式之策略模式
策略模式是对算法的包装,是把使用算法的责任和算法本身分割开来,委派给不同的对象管理。策略模式通常把一个系列的算法包装到一系列的策略类里面,作为一个抽象策略类的子类。用一句话来说,就是:“准备一组算法,并将每一个算法封装起来,使得它们可以互换”.1.接口定义,定义一些公共函数,用于提供给上层调用;2.实现类,用于具体的不同场景的具体实现;3.上层调用类,直接设置一个接口对象.维护一个
2018-01-09 20:20:10
150
原创 Activity的启动模式
Activity启动模式对于广大的Android开发者来说是最基本的知识了,可是你的了解全面了么?下面我就带领大家复习下Activity的启动模式,寻找那些容易被忽视的点。standard默认。系统在启动 Activity 的任务中创建 Activity 的新实例并向其传送 Intent。Activity 可以多次实例化,而每个实例均可属于不同的任务,并且一个任务可以拥有多个实
2018-01-08 20:49:00
263
原创 设计模式之责任链模式
责任链模式出现的场景:避免请求发送者与接收者耦合在一起,让多个对象都有可能接收请求,将这些对象连接成一条链,并且沿着这条链传递请求,直到有对象处理它为止。客户端发送一个请求,有多个对象都有机会来处理这个请求,但客户端不知道究竟谁来处理。客户端只知道他提交请求的第一个对象,从第一个对象开始处理,整个职责链中的对象要么处理请求,要么转发给下一个接受者。在标准的职责链模式中,只要有对象处理了
2018-01-08 18:55:07
218
原创 设计模式之工厂模式
工厂模式并不仅仅是用来new出一个类的对象的,简单工厂是一个工厂对应一个类的关系。假设有代码包A和代码包B,代码包B是代码包A的调用者,A向B暴露接口InterfaceA。在A的内部结构中,实现了InterfaceA的有ClassA1,ClassA2,ClassA3,……ClassA100。但是B并不关心这些,因为对于B来说,A的功能只有一个,就是InterfaceA。这个时候,B想要使用一个
2018-01-06 10:01:36
156
原创 设计模式之Builder模式
考虑这样一个场景,假如有一个类(****User****),里面有很多属性,并且你希望这些类的属性都是不可变的(final),就像下面的代码:public class User { private final String firstName; // 必传参数 private final String lastName; // 必传参数 private
2018-01-04 20:35:21
198
原创 设计模式之单例模式
定义:确保单例类只有一个实例,并且这个单例类提供一个函数接口让其他类获取到这个唯一的实例。其构造函数应该是private类型。使用场景:如果某个类,创建时需要消耗很多资源,即new出这个类的代价很大;或者是这个类占用很多内存,如果创建太多这个类实例会导致内存占用太多。最简单的单例模式:public class Singleton{ private static Si
2018-01-03 18:38:51
150
原创 Android事件分发之总结(三)
Android事件分发机制要点:1.Touch事件分发中只有两个主角:ViewGroup和View。ViewGroup包含onInterceptTouchEvent、dispatchTouchEvent、onTouchEvent三个相关事件。View包含dispatchTouchEvent、onTouchEvent两个相关事件。其中ViewGroup又继承于View。2.ViewGro
2016-11-30 20:34:30
226
原创 Android事件分发之ViewGroup(二)
ViewGroup的dispatchTouchEvent事件总线路: public boolean dispatchTouchEvent(MotionEvent ev) { 调用onInterceptTouchEvent检查是否拦截事件 if(没有拦截){ 在ViewGroup中遍历查找目前是点击了哪个子视图 if(找到了){ 调用该子视图的dispatchTo
2016-11-30 20:33:25
257
原创 Android事件分发之View(一)
1.View的dispatchTouchEvent:/** * Pass the touch screen motion event down to the target view, or this * view if it is the target. * * @param event The motion event to be dispatched
2016-11-30 20:28:34
342
原创 多功能的PagerSlidingTabStrip
PagerSlidingTabStrip 是ViewPager的一个在不同页面导航时可交互的指示器,可以实现滑动导航栏的效果。新增的属性有选中字体颜色和大小的设置,是否显示左右分割线,可以为选项卡的标题设置不同的颜色等。
2016-06-01 15:25:51
536
PagerSlidingTabStrip
2016-06-01
在线图片查看器
2014-11-17
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人