
Android从零单排
文章平均质量分 86
记录自己学习和应用android的一些心得和总结,技术分享!
月盡天明
Hope is a good thing,maybe the best of things!
展开
-
Android 开发 Tip 18 -- PopupWindow 在 Android N(7.0)及以上 的兼容性问题
转载请注明出处:http://blog.youkuaiyun.com/crazy1235/article/details/51820937http://www.jianshu.com/p/0df10893bf5bhttp://www.jianshu.com/p/825d1cc9fa79http://blog.youkuaiyun.com/jabony/article/details/69520686 http://blo原创 2017-08-29 13:53:22 · 1181 阅读 · 0 评论 -
阿里路由框架--ARouter 源码解析之初始化ARouter
转载请注明出处:http://blog.youkuaiyun.com/crazy1235/article/details/77337691上一篇介绍了ARouter的Compiler SDK : 阿里路由框架–ARouter 源码解析之Compiler在编译阶段会根据注解生成相应的 java 类文件。接下来分析一下 arouter-api SDK先来看看目录结构:原创 2017-08-17 18:16:11 · 3464 阅读 · 0 评论 -
阿里路由框架--ARouter 源码解析之Compiler
转载请注明出处:http://blog.youkuaiyun.com/crazy1235/article/details/77126904注解处理器的处理流程RouteProcessorinitprocessparseRoutesInterceptorProcessorAutowiredProcessorIOC参考前段时间,公司项目在做组件化重构,过程中当然会有很多痛点。组件化最重要的是根据项原创 2017-08-12 18:59:26 · 11992 阅读 · 4 评论 -
JDK 1.7之 ConcurrentHashMap 源码分析
转载请注明出处:http://blog.youkuaiyun.com/crazy1235/article/details/76795383Segment HashEntry构造函数puthashensureSegmentSegmentputrehashgetremoveSegmentremovereplaceSegmentreplacecontainsclearSegmentcl原创 2017-08-06 23:44:44 · 4224 阅读 · 0 评论 -
JDK 1.8之 HashMap 源码分析
转载请注明出处:http://blog.youkuaiyun.com/crazy1235/article/details/75579654构造函数NodehashputtreeifyBingetresize参考与JDK1.7中HashMap的实现相比,JDK1.8做了如下改动:hash()函数算法修改table数组的类型,由Entry改成了NodeHashMap存储数据的结构由数组+链表,进原创 2017-07-21 00:57:21 · 1911 阅读 · 0 评论 -
HashTable vs HashMap
转载请注明出处:http://blog.youkuaiyun.com/crazy1235/article/details/76686891关于HashMap的分析,请详见下面这两篇文章: JDK1.7之 HashMap 源码分析 JDK 1.8之 HashMap 源码分析HashMap和HashTable有什么区别?HashMap是非线程安全的,HashTable是线程安全的。HashMap的键和值都原创 2017-08-04 15:57:21 · 863 阅读 · 0 评论 -
Android 开发 Tip 17 -- 为什么getBackground().setAlpha(); 会影响别的控件?
转载请注明出处:http://blog.youkuaiyun.com/crazy1235/article/details/51820937http://www.jb51.net/article/110035.htmhttps://mp.weixin.qq.com/s?__biz=MzA3NTYzODYzMg==&mid=2653578233&idx=1&sn=aea773c1e815fdef910fba28d7原创 2017-07-21 18:25:00 · 935 阅读 · 0 评论 -
JDK1.7之 HashMap 源码分析
JDK1.7 及之前的版本中,HashMap中通过**散列链表**的形式来存储数据,基于一个数组及多个链表的方式,当hash值冲突的时候,就会在对应的节点以链表的形式存储这些hash值冲突的数据!从上面的分析可以得到以下结论:- HashMap的value可以为null- HashMap是非线程安全的- 初始容量和加载因子会影响HashMap的性能原创 2017-07-19 21:18:24 · 3376 阅读 · 1 评论 -
自定义控件之TagGroup
转载请注明出处:http://blog.youkuaiyun.com/crazy1235/article/details/74907150标签瀑布流布局!实现方式有很多种。继承LinearLayout继承ViewGroup继承别的布局…继承LinearLayout 继承LinearLayout相对来说,实现比较简单!不需要自己处理onMeasure() 和 onLayout() 函数! 整原创 2017-07-09 23:41:17 · 5884 阅读 · 0 评论 -
Android ProgressBar 之源码解析及扩展应用!
Android ProgressBar 之源码解析及扩展应用!转载请注明出处:http://blog.youkuaiyun.com/crazy1235/article/details/74194504setProgress(int progress)@android.view.RemotableViewMethod public synchronized void setProgress(int pro原创 2017-07-03 14:41:17 · 1811 阅读 · 0 评论 -
Android绘图基础之Shader
— 转载请注明出处:http://blog.youkuaiyun.com/crazy1235/article/details/74011243Shader – 着色器!Shader 共有5个子类!public Shader setShader(Shader shader) { // If mShader changes, cached value of native shader aren't原创 2017-06-30 17:57:20 · 1757 阅读 · 0 评论 -
Android绘图基础之xfermode & layer
转载请注明出处:http://blog.youkuaiyun.com/crazy1235/article/details/73835933layerxfermodeCLEARDSTSRClayerandroid的绘图机制有点类似于 [PhotoShop] 的方式!可以分成很多个图层(layer)每个图层绘制自己的内容,然后图层之间可以合并!(图片转自网络)Api 中关于图层的操作有如下几个函数:sa原创 2017-06-28 11:50:24 · 1934 阅读 · 3 评论 -
Android绘图基础之Canvas & Paint & Rect & RectF
转载请注明出处:http://blog.youkuaiyun.com/crazy1235/article/details/73611978Rect RectFCanvasPaintPointLineArcCircleOvalRectRoundRectTextBitmapPathRect & RectFRectF和Rect都表示的是一个矩形的区域,他们的构造方法类似!不同的是,Rect原创 2017-06-22 23:16:40 · 5147 阅读 · 0 评论 -
Android 开发 Tip 16 -- setMultiChoiceItems & setSingleChoiceItems 不显示!?
转载请注明出处:http://blog.youkuaiyun.com/crazy1235/article/details/51820937原创 2017-06-14 19:06:25 · 1387 阅读 · 0 评论 -
View的绘制流程分析之四 -- draw
draw - 绘制 将View绘制在屏幕上! /* * Draw traversal performs several drawing steps which must be executed * in the appropriate order: * * 1. Draw the backgroun原创 2017-05-23 00:09:16 · 1351 阅读 · 0 评论 -
View的绘制流程分析之三 -- layout
转载请注明出处:http://blog.youkuaiyun.com/crazy1235/article/details/72633389layout - 布局 确定View的最终宽高以及四个顶点的位置!接着上一篇 View的绘制流程分析之二 – measure 往下分析layout过程!在ViewRootImpl 中的performTraversals() 函数内部,执行performMeasure()原创 2017-05-23 00:08:31 · 1234 阅读 · 0 评论 -
View的绘制流程分析之二 -- measure
转载请注明出处:http://blog.youkuaiyun.com/crazy1235/article/details/72633385measure - 测量 确定View的测量宽高上面说到 performTraversals() 函数的时候,内部调用了 performMeasure() private void performMeasure(int childWidthMeasureSpec, i原创 2017-05-23 00:07:15 · 1196 阅读 · 0 评论 -
Android对Window对象的管理机制分析
转载请注明出处:http://blog.youkuaiyun.com/crazy1235/article/details/51820937关于Window对象管理的相关类:ViewManagerWindowManagerWindowManagerImplWindowManagerGlobalViewParentViewRootImplActvityThreadWindowManagerServi原创 2017-05-22 13:39:13 · 3266 阅读 · 0 评论 -
Android 开发 Tip 15 -- can be replaced by one <TextView/> and a compound drawable
转载请注明出处:http://blog.youkuaiyun.com/crazy1235/article/details/51820937 This tag and its children can be replaced by one <TextView/> and a compound drawable当xml布局文件中,出现两个紧挨着的 <ImageView /> <TextView />,IDE就会原创 2017-05-19 13:23:45 · 1362 阅读 · 0 评论 -
Android 开发 Tip 14 -- Singleton
转载请注明出处:http://blog.youkuaiyun.com/crazy1235/article/details/51820937package android.util.Singleton.javapublic abstract class Singleton<T> { private T mInstance; protected abstract T create(); publ原创 2017-05-17 10:18:07 · 1130 阅读 · 0 评论 -
Activity具体是怎么创建的?又是怎么显示出来的?
转载请注明出处:http://blog.youkuaiyun.com/crazy1235/article/details/72236314startActivity() 到底发生了什么?onCreate() 是什么时候回调的?onResume() 又是什么时候回调的?为什么回调OnResume()之后界面才可见?PhoneWindow是什么时候创建的?ActivityThread 与 Applica原创 2017-05-16 10:27:38 · 3833 阅读 · 2 评论 -
setContentView() 究竟都做了什么?
转载请注明出处:http://blog.youkuaiyun.com/crazy1235/article/details/51471280这个函数是在常见不过的了!setContentView(R.layout.activity_test_view);但是调用了这个函数设置Activity布局的时候,android系统究竟做了什么操作呢?往下看!setContentView()我们新建项目模式都是使用的 The原创 2017-05-15 21:31:47 · 20174 阅读 · 5 评论 -
Android 开发 Tip 13 -- generateViewId
转载请注明出处:http://blog.youkuaiyun.com/crazy1235/article/details/51820937View.javapublic static int generateViewId() { for (;;) { final int result = sNextGeneratedId.get(); // aap原创 2017-05-15 11:45:12 · 2423 阅读 · 0 评论 -
Android 开发 Tip 12 -- 各种Drawable
转载请注明出处:http://blog.youkuaiyun.com/crazy1235/article/details/51820937原创 2017-05-12 11:19:23 · 999 阅读 · 0 评论 -
View的绘制流程分析之一
转载请注明出处:http://blog.youkuaiyun.com/crazy1235/article/details/71568745绘制流程从哪里开始的ViewManageraddViewrequestLayoutMeasureSpecSpecMode绘制流程从哪里开始的?在 Activity具体是怎么创建的?又是怎么显示出来的? 这篇博文中,讲解了从startActivity() 调用之后,原创 2017-05-10 19:15:59 · 971 阅读 · 0 评论 -
Android 开发 Tip 11 -- TabLayout 设置文字大小一致
转载请注明出处:http://blog.youkuaiyun.com/crazy1235/article/details/71425135 使用TabLayout的时候,有些tab的文字比较多时,会出现与其他tab的文字大小不一致的情况!TabLayout 继承自 HorizontalScrollView内部有几个关键的类:SlidingTabStrip – TabLayout的唯一子ViewTab原创 2017-05-08 17:00:55 · 10329 阅读 · 0 评论 -
Volley 源码解析
转载请注明出处:http://blog.youkuaiyun.com/crazy1235/article/details/71340320总体流程分析VolleyjavaRequestQueueResponseDeliveryaddRequestT requestCacheDispatcherCache DiskBasedCacheDiskBasedCacheinitialize 初始化原创 2017-05-07 17:35:44 · 943 阅读 · 0 评论 -
Android 开发 Tip 10 -- app:showAsAction & android:showAsAction
转载请注明出处:http://blog.youkuaiyun.com/crazy1235/article/details/51820937IDE给出的提示:所以当Activity继承AppCompatActivity 时,应该用app:showAsActionActivity继承Activity时,应该使用android:showAsAction原创 2017-05-04 14:52:05 · 996 阅读 · 0 评论 -
Android 开发 Tip 9 -- TouchDelegate
转载请注明出处:http://blog.youkuaiyun.com/crazy1235/article/details/71115773View的 onTouchEvent() 函数中有这样一段!public boolean onTouchEvent(MotionEvent event) { // ... if (mTouchDelegate != null) {原创 2017-05-03 12:24:17 · 1144 阅读 · 0 评论 -
Android 开发 Tip 8 -- clipToPadding & clipChildren
转载请注明出处:http://blog.youkuaiyun.com/crazy1235/article/details/51471280最常用这两个属性的场景是这样的:ListView或者RecyclerView可以透过透明(半透明)的actionbar或者toolbar被用户看到!<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:and原创 2017-05-03 10:32:28 · 1322 阅读 · 0 评论 -
View & ViewGroup 之 事件分发
转载请注明出处:http://blog.youkuaiyun.com/crazy1235/article/details/70767884MotionEventActivity的事件分发ViewGroup的事件分发View的事件分发dispatchTouchEventonInterceptTouchEventonTouchEvent原创 2017-04-25 22:02:36 · 1913 阅读 · 0 评论 -
Android 开发 Tip 7 -- volatile & synchronized
转载请注明出处:http://blog.youkuaiyun.com/crazy1235/article/details/51471280volatile只能用于修饰变量,而synchronized可以修饰方法和代码块多线程访问volatile不会发生阻塞,而synchronized会发生阻塞volatile只能保证数据可见性,不能保证原子性!synchronized可以保证原子性,也可以间接保证可见性原创 2017-05-01 15:05:58 · 846 阅读 · 0 评论 -
Android 开发 Tip 6 -- Spinner 文字 & icon 居中显示
转载请注明出处:http://blog.youkuaiyun.com/crazy1235/article/details/70903974设置Spinner 文字居中默认情况下,Spinner控件的效果是这样的: 想让文字居中显示怎么办???在布局文件中设置android:gravity="center"也不起作用!!源码走读先来看 Spinner 的构造函数public Spinner(Context原创 2017-04-28 13:12:23 · 13619 阅读 · 5 评论 -
UniversalImageLoader源码解析之 MomoryCache
转载请注明出处:http://blog.youkuaiyun.com/crazy1235/article/details/51820937原创 2017-04-22 17:43:33 · 1290 阅读 · 0 评论 -
UniversalImageLoader源码解析之 DiskCache
转载请注明出处:http://blog.youkuaiyun.com/crazy1235/article/details/70472306FileNameGeneratorDiskCachetryLoadBitmapUnlimitedDiskCacheBaseDiskCacheLimitedAgeDiskCacheLruDiskCachegetsaveremoveclear上上一篇介绍了原创 2017-04-22 17:40:51 · 2127 阅读 · 0 评论 -
UniversalImageLoader源码解析之任务处理
转载请注明出处:http://blog.youkuaiyun.com/crazy1235/article/details/70471293ProcessAndDisplayImageTaskLoadAndDisplayImageTask上篇文章介绍 displayImage() 这个重要的方法时,重要涉及到 ProcessAndDisplayImageTask (处理和显示图片任务)和 LoadAndDis原创 2017-04-22 17:34:14 · 1356 阅读 · 1 评论 -
UniversalImageLoader源码解析之总体流程
转载请注明出处:http://blog.youkuaiyun.com/crazy1235/article/details/70312924源码包结构cachediscmemorycoreutils流程分析DefaultConfigurationFactorydisplayBitmap函数流程图在上篇,介绍了UIL的基本使用方法 UniversalImageLoader的用法总结这篇针对源码进行原创 2017-04-21 11:28:18 · 1762 阅读 · 1 评论 -
UniversalImageLoader的用法总结
转载请注明出处:http://blog.youkuaiyun.com/crazy1235/article/details/51471280UIL的功能及优点UIL的使用具体配置滚动时暂定加载作为图片加载类库的”老大哥”,相信大部分人都用过它!不管是自己再项目里面用,还是自己造轮子,了解UIL的用法和框架原理都是有帮助的!下面就来总结下UIL的基本使用!UIL的功能及优点支持从网络,本地,项目内读取图片原创 2017-04-20 22:41:25 · 10690 阅读 · 0 评论 -
LayoutInflater原理解析
构造LayoutInflaterLayoutInfalter的使用分析情况总结构造LayoutInflater获取系统服务LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);from(Context)LayoutInflater inflater = L原创 2017-04-17 13:20:19 · 3994 阅读 · 1 评论 -
Android 开发 Tip 5 -- View xxx not attached to window manager
转载请注明出处:http://blog.youkuaiyun.com/crazy1235/article/details/51471280错误信息java.lang.IllegalArgumentException: View=DecorView@f4179d7[title] not attached to window managerat android.view.WindowManagerGlobal.f原创 2017-04-16 13:22:28 · 3174 阅读 · 0 评论