- 博客(32)
- 资源 (26)
- 收藏
- 关注
原创 自己动手实现RxJava
动手实现RxJava前言第一次接触到RxJava时,被其优雅的链式调用风格和强大的操作符深深吸引,RxJava一路调用,一气呵成,用很简洁的代码轻松处理复杂的逻辑,一旦喜欢上就爱不释手,在事件的传递过程中还能对事件进行各种加工,简直无与伦比,心中不免一阵窃喜。后来开始尝试阅读源码,当get到部分心法要诀时,蓦然回首,原来想要造一个RxJava并不是很难,于是便有了此篇。希望你读完后,能够深深的喜欢...
2018-07-06 11:24:22
2482
2
原创 Android 模块化完整方案实现
因为公司业务太多,代码越来越臃肿,越来越难维护,为了提升开发效率,减低代码的维护成本,所以采取了模块化开发方案。 既然是模块化开发,必然要考虑到各个module的开发,调试,迭代拓展及维护,module之间不仅需要做到业务代码隔离,还需要方便的跳转(路由引导模块),方便的传递数据(包括大容量的数据),能够独立编译调。最后,各个module,完成之后,一起打包到主APP即可。
2017-12-16 22:48:06
27461
5
原创 简单灵活解决 Viewgroup嵌套 产生的手势冲突问题
这是接着上一篇Android 下拉刷新上拉加载 多种应用场景 超级大放送(上)的,这里介绍一下怎么 简单灵活解决Viewgroup嵌套产生的手势冲突问题。虽然这里只是以ViewPager为例,但是提供了一种解决此类问题的通用思路。先来看一下网易新闻客户端的界面效果和上一篇实现的Demo效果图:当手势方向为蓝色箭头方向时,响应ListView的滑动当手势方向为黄色箭头方向时,响应ViewPager的图片滑动。 关于Viewgroup嵌套产生的手势冲突问题主要分为两类:当手势动作作用于子View时,我们希望能
2015-08-20 20:29:17
2581
原创 Android 下拉刷新上拉加载 多种应用场景 超级大放送(上)
关于Android下拉刷新上拉加载,网上的Demo太多太多了,这里不是介绍怎么去实现下拉刷新上拉加载,而是针对下拉刷新上拉加载常用的一些应用场景就行了一些总结,包含了下拉刷新上拉加载过程中遇到的一些手势冲突问题的解决方法(只能算是抛砖引玉)。Demo中包含的一些主要的知识点:View和ViewGroup的事件分发机制,DrawerLayout侧滑菜单,SwipeListView滑动删除,瀑布流照片墙效果,图片轮播,PagerSlidingTabStrip,TabLayout,VewPager等的使用方法在D
2015-08-16 22:21:04
4985
1
原创 Activity生命周期的回调,你应该知道得更多!--Android源码剖析(下)
接着上一篇继续去追踪Activity_B生命周期回调源码。 继续分析,在performPauseActivity方法中,回调了Activity的两个操作函数: 一 个是用于保存状态的onSaveInstanceState(),另一个就是onPause() ,这里你应该了解onPause和onSaveInstanceState的调
2015-07-16 13:55:02
4123
原创 Activity生命周期的回调,你应该知道得更多!--Android源码剖析(上)
学习Android近一年,最近几天总算把Activity启动的生命周期回调流程走通了,因为所涉及的知识点太多,赶快做了笔记,不然过几天就忘了。需要了解的几点概念和知识点:Instrumentation是执行application instrumentation代码的基类,这个类在任何application code之前实例化,让你可以监听所有的system与application之间的交互,一个应用程序中只有一个Instrumentation对象,每个Activity内部都有一个该对象的引用Instru
2015-07-16 11:31:10
5472
原创 Android RecyclerView的基本使用
DEMO实现功能:RecyclerView的点击事件: Item及item中的子View添加点击事件,RecyclerView Item之间添加分隔线:垂直与水平方向,RecyclerView 单个与多个Item的添加与删除,RecyclerView Item添加与删除动画效果,RecyclerView滚动状态监听,LayoutManager的使用。RecyclerView的相关的LayoutManager ItemDecoration 和 ItemAnimator:LayoutManager
2015-06-25 14:50:27
7627
3
原创 Android RippleEffect波纹效果,重写View
Android RippleEffect波纹效果,重写View 在前一篇中介绍了通过重写ViewGroup实现RippleEffect波纹效果,这里再介绍介绍一种通过重写View的方式实现RippleEffect波纹效果的方式,当然,顺便还介绍 通过重写Button或者ImagView,实现点击变色效果的方式,不再写 selector了,直接在XMl的属性中就可以设置。这是f
2015-06-15 14:26:41
2310
原创 Android RippleEffect波纹效果,重写ViewGroup
Android RippleEffect波纹效果,重写ViewGroup 一直觉得Material Design很美,一直琢磨着打算给公司项目也换成Material Design风格,这里先介绍一种重写RelativeLayout实现的RippleEffect的波纹效果。 先来看看Demo效果(GIF做得不好,见谅):
2015-06-13 15:36:19
1606
原创 Android PopupWindow使用详解
先来看一下PopupWindow的描述: A popup window that can be used to display an arbitrary view. The popup window is a floating container that appears on top of the current activity. PopupWind
2015-05-25 10:20:49
8895
原创 一个叫GUN的有趣的APP源码
这个APP是帮一个小伙伴开发的,功能和UI都超级简单,代码量很少,目前算是alpha版本吧,因为是开发着玩的(非公司项目),所以把目前的代码放送出来。这是在开发过程中注意的几个知识点:使用Material Design中的Ripple Effect;使用自定义进度条,中间显示倒计时时间,外圆白色逐渐减少,黑圈逐渐增加(两个Paint,一个绘制未完成的白圈,一个绘制完成的黑圈)在Service中开启TimerTask每隔100ms监听一次当前使用的APP是否为本APP,否则自动跳转到指定界面注意监
2015-04-29 08:40:08
3233
原创 Android ListView城市列表,按a-z分组字母索引排序
在上一篇中实现了,先自定义数据源,使Adapter通过实现SectionIndexer接口给ListView分组,并用Collections.sort对数据list进行排序。 但是Collections.sort并不高效,如果数据源太多,必然会太耗时,所以这篇使用android.widget.Filterable自动筛选城市。 Filterable定
2015-04-21 14:58:57
9001
原创 Android ListView实现分组字母索引排序
因为项目需要字母索引排序的效果,GIT上和博客上有很多,但是发现很多DEMO的效果和自己想要的有出入,所以稍微整理了一下。 这篇就是在整理过程中自己写的测试Demo。 先上截图(字符串是随机生成的,部分视觉效果也进行了处理……修复了Bug,但是搜索的效率太低,搜索实现的另一种方法,在下一篇博客中)。 说明:顶部是搜索部分,右边是自定义的字母索引M
2015-04-21 09:25:05
4791
原创 Android MP3录音实现
给APP做语音功能,必须考虑到IOS和Android平台的通用性。wav录音质量高,文件太大,AAC和AMR格式在IOS平台却不支持,所以采用libmp3lame把AudioRecord音频流直接转换成MP3格式。 声明一下,代码参考了http://blog.youkuaiyun.com/cboy017/article/details/8455629,这里只是借花献佛,把整个流程写得更详细
2015-04-17 14:30:03
4884
原创 Android NDK开发之入门教程
JNI(Java Native Interface, Java本地化方法)使得Java能与其它语言(如C、C++)的动态库进行交互。 在Android 项目中,经常看到地图,统计,推送之类的第三方平台都用了 JNI。 Android NDK(Android Native Development Kit)是一系列的开发工具,使用JNI编程,可以提高程序
2015-04-13 19:47:32
1489
原创 Android两级导航菜单栏的实现--FragmentTabHost+自定义二级导航菜单栏
前两篇博文分别采用 FragmentTabHost嵌套FragmentTabHost和FragmentTabHost+PagerSlidingTabStrip 与ViewPager的方式实现了子Tab导航菜单栏的效果,虽是好用,但有时候却不灵活。 本篇中将要实现自定义Tab导航菜单栏效果。 如果你对FragmentTabHost和Fragment还不
2015-03-29 15:04:01
6379
原创 Android两级导航菜单栏的实现--FragmentTabHost结合ViewPager与Android 开源项目PagerSlidingTabStrip
上一篇中采用 FragmentTabHost嵌套FragmentTabHost的方式实现 了Android两级导航菜单栏效果,但不能实现左右滑动。 本篇将使用PagerSlidingTabStrip 和ViewPager实现子Tab导航菜单栏的页面滑动。当然,你也可以直接把PagerSlidingTabStrip 和ViewPager放到项目中当做主Tab导航菜单栏使用,只
2015-03-29 14:28:09
3049
原创 Android两级导航菜单栏的实现--FragmentTabHost嵌套FragmentTabHost
开发APP,有时候一层Tab导航菜单栏并不能满足业务需求,这时候就需要二级Tab导航菜单栏了。接下来的两篇博客实现的都是这种效果,只是采用的方式不同而已。 本篇实现的类似Instagram(我天朝一直喜欢各种封杀)的效果: 这是本篇中Demo实现的效果: 思路:采取FragmentTabHost嵌套F
2015-03-29 13:37:36
3604
原创 Fragment和Activity通信以及Fragment之间通信的两种方式
Fragment之间通信很简单……这里只是提供思路,无论是Fragment和Activity还是Fragment之间,通信的原理都是如此,所以Fragment之间通信不能直接通信,必须依靠所依附的Activity。可以通过getSupportFragmentManager()拿到FragmentManager,然后通过FragmentManager的findFragmentByTag或者findFragmentById拿到我们需要通信的Fragment(比如说在下面的DEMO中我们用的是FragmentT
2015-03-27 15:11:11
10611
原创 重写FragmentTabHost,防止FragmentTabHost切换fragment重新调用onCreateView()
为了防止FragmentTabHost切换fragment重新调用onCreateView(),可以重写FragmentTabHost还有一种在fragment onCreateView 里缓存View,防止每次onCreateView 的时候重绘View
2015-03-27 12:43:13
5689
原创 Android Tab导航菜单栏--FragmentTabHost+Fragment实现(基础篇)
FragmentTabHost继承TabHost,增加了对Fragment的支持。FragmentTabHost常见用法: 2.2 对FragmentTabHost做初始化的操作 public void setup () public void setup (Context context, FragmentManager manager) public void setup (Context context, FragmentManager manager, int co
2015-03-26 19:21:44
6328
原创 从Android源码角度对Handler,MessageQueue,Looper之间消息传递工作原理的理解
先总结一下Handler,MessageQueue,Looper之间消息传递的工作原理和相关异常信息,后面进行源码分析。1 主线程中创建唯一的一个Looper,在Looper对象中,创建MessageQueue对象 首先Android程序启动时会开启主线程Main Thread(主线程通常被叫做UI线程); 在Main Thread中会创建Looper对象;
2015-03-15 13:10:07
1219
原创 对Android Handler Message Looper常见用法,知识点的一些总结
Android 非UI线程中是不能更新UI的,Handler是Android 提供的一套更新UI的机制,也是用来发送消息和处理消息的一套机制。以前刚接触的Handler的时候,感觉总是很困惑,对Handler原理也是一知半解,现在对Handler常见用法,知识点总结一下。Class OverviewA Handler allows you to send and process Message and Runnable objects associa
2015-03-06 09:12:53
2028
原创 android AsyncTask和HttpURLConnection结合,简单模仿android开源框架andorid-async-http
android AsyncTask和HttpURLConnection结合,简单模仿android开源框架andorid-async-http 这里不是重复造轮子,只是努力地去学习轮子构建过程…… 因为水平太有限,很多细节没考虑,只当自己练手了……
2015-03-04 17:00:27
2304
原创 Android 网络请求方式之HttpClient,GET,POST,PUT请求使用方法
HttpClient是Apache开源组织提供的HTTP网络访问接口,HttpClient封装了访问http的请求头,参数,内容体,响应等等,有很多API,可以很方便的处理session,cookie等(在某些情况下,用HttpURLConnection访问一些特定的页面,处理session,cookie相当复杂),比较稳定,发送请求、接收响应都很简单。可以简单的分为几步执行:1.1 创建
2015-03-02 11:29:48
3518
原创 Android 百度地图最新SDK v3.2.0和Android定位SDK:v5.0应用(4)
这一篇要实现的百度地图的POI检索先上效果图(Android5.0.1):1.首百度地图poi 检索 OnGetPoiSearchResultListener简单介绍主要是通过实现百度地图poi 检索结果回调(OnGetPoiSearchResultListener),下面把主要的几个类列出来:PoiBoundSearchOp
2015-01-31 13:57:16
1874
原创 Android 百度地图最新SDK v3.2.0和Android定位SDK:v5.0应用(3)
上一篇中,已经实现了对地图的一些基本的简单操作,现在要实现以下几个功能:a 在百度地图中间实现一个固定不动的View,类似快的打车软件地图中中间固定不动的View;b 在地图中间固定不动的View上添加PopupWindow,实现随着地图移动,即时显示当前的位置信息;c 在百度地图上添加覆盖物Marker与InfoWindow的点击事件,这里分别用3种不同的方式实现;功能就这么点,
2015-01-31 10:04:03
1760
原创 Android 百度地图最新SDK v3.2.0和Android定位SDK:v5.0应用(2)
前面已经成功导入地图包,并成功运行,现在把代码改造一下,实现以下几个功能:a 在百度地图中添加一个回到当前位置的按钮;b 隐藏百度地图自带的放大缩小控件,实现自己的地图缩放控件;c 换成最新的百度地图Android SDK v3.2.0和Android定位SDK:v5.0;下面开始敲代码……1.首先创建地图布局activity_location.xml<R
2015-01-30 17:09:57
1487
原创 Android 百度地图最新SDK v3.2.0和Android定位SDK:v5.0应用(1)
2014年11月07日 百度地图Android SDKv3.2.0发布,2014年12月11日 Android定位SDK:v5.0产品上线,新增:新增国外(全球)定位能力开放,直接替换开发包无需修改代码;优化:Android L 适配优化;修复:修复GPS定位方式未返回地址的问题。本demo使用的是最新的百度地图AndroidSDK v3.2.0和Andro
2015-01-30 15:11:27
2774
原创 Android android-async-http简单再封装
今天再对android-async-http简单封装封装一下,同样也只是拿来练手……1.首先创建AsyncHttpUtilClient类/** * 再封装android-async-http * * @author wen * @version 2015年1月19日 * @see AsyncHttpUtilClient * @since */pub
2015-01-26 17:33:39
1125
原创 Android Volly简单再封装
今天要写的是 对Volly的简单封装,只是拿来练手……关于Volly的用法这里就不细说了,这篇写得比较详细http://blog.youkuaiyun.com/guolin_blog/article/details/17482095,这里只是对StringRequest做了简单封装。1.首先创建VollyRequestManager管理类/** * VollyRequestManager管理类
2015-01-24 13:17:27
1088
原创 Blog之旅
Blog之旅 14年七月,算是正式开始接触Android。至今,已成为一名独立的Android开发者。 第一个项目是帮一群创业小青一起为国内一家知名的牛奶企业开发APP,震惊的是当初竟然在团队没人会Android的情况下,就接下这个烫手的活。真的很感谢那个算是处女作的项目。从只会写
2014-12-23 16:53:59
549
Fragment和Activity通信以及Fragment之间通信的方式(二)
2018-02-12
Android 下拉刷新上拉加载 多种应用场景
2015-10-16
Android Recyclerview使用方法
2015-06-25
RippleEffect波纹效果,重写Button
2015-06-15
RippleEffect波纹效果
2015-06-13
Android PopupWindow的使用详解
2015-05-25
一个类似定时番茄钟的app源码
2015-04-29
Android ListView城市列表,按a-z分组字母索引排序
2015-04-21
Android ListView的字母索引排序和搜索
2015-04-21
Android MP3录音实现
2015-04-17
Android两级导航菜单栏--FragmentTabHost+自定义(2)
2015-03-29
Android两级导航菜单栏--FragmentTabHost+自定义(1)
2015-03-29
Android两级导航菜单栏--FragmentTabHost嵌套FragmentTabHost的使用
2015-03-29
Android两级导航菜单栏-FragmentTabHost和PagerSlidingTabStrip+ViewPager实现
2015-03-29
Fragment和Activity通信以及Fragment之间通信的方式(1)
2015-03-27
重写FragmentTabHost,防止FragmentTabHost切换fragment重新调用onCreateView()
2015-03-27
FragmentTabHost的基本使用
2015-03-27
Android Handler Message一些知识总结的Demo
2015-03-06
Android 百度地图最新SDK v3.2.0和Android定位SDK:v5.0应用4
2015-01-31
Android 百度地图最新SDK v3.2.0和Android定位SDK:v5.0应用3
2015-01-31
Android 百度地图最新SDK v3.2.0和Android定位SDK:v5.0应用2
2015-01-30
Android 百度地图最新SDK v3.2.0和Android定位SDK:v5.0应用1
2015-01-30
andriod volly jar包
2015-01-26
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人