- 博客(49)
- 资源 (12)
- 收藏
- 关注

原创 Android View原理解析之基础知识(MeasureSpec、DecorView、ViewRootImpl)
自定义View是Android进阶路线上必须攻克的难题,而在这之前就应该先对View的工作原理有一个系统的理解。本系列将分为4篇博客进行讲解,本文将主要对MeasureSpec、DecorView、ViewRootImpl等基础知识进行讲解。
2018-09-23 20:51:08
1044

原创 Android文件系统详解
前言文件系统一直是Android开发过程中经常接触的东西。而关于内部存储、外部存储、外置存储、私有存储、公共存储,以及访问哪些文件需要申请运行时权限等问题,一直是许多开发者头疼的问题。本文就将详细地讲解这些重要而模糊的知识点。内部存储内部存储主要用于保存应用的私有文件,其他应用无法访问这些数据。当应用卸载的时候,这些数据也会被删除。使用内部存储不需要任何额外权限。写入数据
2018-01-27 22:17:46
20631

原创 Android Menu用法全面讲解
菜单(Menu)是Android应用中非常重要且常见的组成部分,主要可以分为三类:选项菜单、上下文菜单/上下文操作模式以及弹出菜单。本文只介绍Android3.0及以上的Menu知识点。
2017-11-23 01:35:26
26355
3
原创 Android View原理解析之绘制流程(draw)
自定义View是Android进阶路线上必须攻克的难题,而在这之前就应该先对View的工作原理有一个系统的理解。本系列将分为4篇博客进行讲解,本文主要对View的绘制流程(draw)进行讲解。
2018-09-23 20:53:37
1204
原创 Android View原理解析之布局流程(layout)
自定义View是Android进阶路线上必须攻克的难题,而在这之前就应该先对View的工作原理有一个系统的理解。本系列将分为4篇博客进行讲解,本文主要对View的布局流程(layout)进行讲解。
2018-09-23 20:52:52
1291
原创 Android View原理解析之测量流程(measure)
自定义View是Android进阶路线上必须攻克的难题,而在这之前就应该先对View的工作原理有一个系统的理解。本系列将分为4篇博客进行讲解,本文主要对View的测量流程(measure)进行讲解。
2018-09-23 20:51:58
1200
1
原创 Android LayoutParams详解
在平时的开发过程中,我们一般是通过XML文件去定义布局,所以对于LayoutParams的使用可能相对较少。但是在需要动态改变View的布局参数(比如宽度、位置)时,就必须要借助这个重要的类了。本文将结合具体场景详细讲解LayoutParams的相关知识。
2018-09-15 22:00:32
12921
3
原创 Android RecyclerView瀑布流中Item宽度异常的问题(源码分析)
通过RecyclerView配合StaggeredGridLayoutManager可以很方便的实现瀑布流效果,一般情况下会把作为Item的子View宽度设置为MATCH_PARENT,那么子View将根据列数(假定是垂直排列)平均分配RecyclerView的宽度。但是如果我们为子View的width设置一个确切的值(记为x),并且为RecyclerView添加ItemDecoration(为了设置Item的间距),最终Item的宽度将会被预期的要窄(小于x),本文将从源码的角度分析这种结果的产生的原因。
2018-09-15 16:59:23
2485
原创 Android自定义View之FairySearchView(灵活的通用搜索控件)
FairySearchView是经过封装的通用搜索控件,可以根据需求切换不同的布局模式。内置多种事件监听器,可以满足不同场景的业务需求,使用方式非常灵活。本文主要讲解该库的基本用法和实现思路。
2018-08-07 23:33:17
1833
1
原创 Android自定义View之PopupLayout(通用弹出式布局)
PopupLayout是通用弹出布局辅助库,允许开发者从顶部、底部、左侧、右侧和中心这五个位置弹出自己指定的View,此外还提供圆角和动画特性。本文将介绍该库的基本用法和主要开发思路。
2018-08-07 23:16:09
6796
5
原创 主项目和Module包名相同造成的编译错误(DexException: Multiple dex files define)
1.场景描述在项目中新建了Module并引用,结果在编译时出现了错误,错误信息如下:Error:Error converting bytecode to dex: Cause: com.android.dex.DexException: Multiple dex files define Lcom/codingending/popupcontainer/BuildConfig;2....
2018-07-25 22:26:39
1672
原创 Android UI RecyclerView讲解
RecyclerView是Android 5.0之后推出的列表类控件,具有高度的解耦性和灵活性。通过使用合适的LayoutManager,可以实现ListView、横向ListView、GridView和瀑布流列表的效果。本文将对RecyclerView的相关知识点进行详细讲解。基本用法使用步骤RecyclerView是支持库中的控件,因此在使用前需要先在build.g...
2018-04-04 13:53:14
721
原创 Android UI GridView讲解
前言GridView常用于以网格形式展示数据,九宫格布局就是一种典型的应用。本文将详细讲解GridView的使用方法和常用技巧。基本使用GridView的使用和ListView相似,重点在于数据由Adapter(适配器)提供,GridView并不直接访问数据源。因此,可以将GridView的使用分为3步:获得数据源(如数组,List等)通过数据源建立适配器(如ArrayAd...
2018-03-11 18:23:28
610
原创 Android UI ListView讲解
前言在Android系统中,针对大量数据的展示,可以使用ListView以列表的形式的呈现。虽然现在ListView在很多地方都被RecyclerView取代了,但是在一些合适的场景中依旧有用武之地。本文将详细讲解ListView的使用和常用技巧。基本使用ListView的使用还是很简单的,重点在于数据由Adapter(适配器)提供的,ListView并不直接访问数据源。因此,可以...
2018-03-10 21:55:30
573
原创 Android UI 常用控件讲解
Android系统提供了种类繁多的控件,很多的用法都很简单。但是由于控件的多样性,偶尔也容易忘记控件的一些细节问题。因此,本文将总结、讲解一些常用控件的用法和技巧。本文的内容包括:CheckBox、RadioButton、ToggleButton、Switch、ProgressBar、SeekBar、RatingBar、Spinner、ImageButton。CheckBox...
2018-03-07 23:49:44
3918
原创 Android UI 与文本相关的控件
谈到Android中与文本相关的控件,容易想到的自然是TextView和EditText。这两类控件的使用率很高,基本使用方法也很简单。但是如果追寻细节,会发现它们还隐藏着很多的黑科技知识。本文的内容包括:TextView、EditText、AutoCompleteTextView、MultiAutoCompleteTextView。TextView相关属性TextVi...
2018-03-07 23:22:52
2716
1
原创 Android WebView 常用API参考手册
WebView、WebViewClient和WebChromeClient拥有着数量庞大的API,对于开发者而言时常需要查阅相关的资料,然而官方文档对很多方法都是一笔带过。本文就将详细讲解这些API方法,并针对存在困惑与误区的方法做出了具体的解释。
2017-12-26 01:06:51
6111
原创 Android WebView全面讲解
WebView是Android中的原生UI控件,主要用于在app应用中方便地访问远程网页或本地html资源。同时,WebView也在Android中充当Java代码和JS代码之间交互的桥梁。实际上,也可以将WebView看做一个功能最小化的浏览器。本文将全面讲解WebView各方面的知识点。2.基本使用创建一个WebView组件通常情况下,我们会在XML文件中定义需...
2017-12-19 22:48:13
1574
原创 Android系统版本与API级别对照表
对照表 系统版本 API 级别 VERSION_CODE Android 2.3 Android 2.3.1 Android 2.3.2 9 GINGERBREAD Android 2.3.3 Android 2.3.4 10 GINGERBREAD_MR1 Android 3.0.x 11 HONEYCOMB And...
2017-12-18 16:36:20
3052
原创 读取手机联系人
读取手机联系人是Android应用中很常见的操作,也是很多应用的功能基础,本文就简单讲解一下如何使用ContentResolver对手机联系人进行读取。
2017-06-07 22:39:57
3719
1
原创 详解Android权限机制
前言权限是Android中一个非常重要的组成部分,许多操作都需要获取到权限才能进行。在Android6.0之后,权限机制发生了重大变化,加入了运行时权限这一概念。本文就详细讲解一下Android6.0前后的权限机制。
2017-06-04 22:35:04
5771
原创 详解ContentProvider的使用
在Android中,应用间的数据共享是一件很常见的事情,典型的场景就是读取手机通讯录。为了实现安全高效地数据共享,Android提供了ContentProvider这一组件,即内容提供器。本文就简单讲解一下ContentProvider的使用。
2017-05-30 16:19:00
2293
原创 Java首选项Preferences
对一款人性化的应用来说,往往需要存储用户的偏好设置,例如字体大小、应用风格等个性化的设置数据。Java应用具有跨平台的特性,就更需要一种平台无关的存储手段。Java官方给出的解决方案是Preferences首选项,本文就来简单讲解一下Preferences的使用。
2017-05-20 16:13:02
4067
原创 BoxLayout布局管理器
如何布局一直是Java Swing中一个令人头疼的问题。老实说,Java官方给出的几种布局管理器实现,都不怎么好用。不过,合理利用多种布局和JPanel的组合,倒也足以完成大部分布局需求了。本文就简单讲解一下BoxLayout这个灵活的布局管理器。BoxLayout即盒子布局,允许组件水平或垂直排列。
2017-05-18 16:50:17
1918
原创 详解Android中的SQLite数据库存储
在Android中存储数据的方式有很多种,其中使用SQLite数据库是存储结构化数据的最佳选择。幸运的是,Android中默认提供了对SQLite的支持,这就使得在Android中使用SQLite数据库变得格外方便。
2017-05-17 16:31:13
3053
原创 使用AIDL实现IPC
实现Android中的IPC(进程间通信)有多种方式,而AIDL则是其中功能最强大的一种方式。通过AIDL,我们不仅可以在进程间传递数据,还可以实现RPC(远程方法调用)。很多时候,一些业务需求只能使用AIDL这种方式进行实现,因此掌握AIDL的使用至关重要。本文就简单讲解一下如何使用AIDL实现IPC。
2017-05-05 21:09:02
951
原创 使用Messenger实现IPC
在Android中实现IPC(进程间通信)的方式有很多,本文讲解如何使用Messenger进行实现。Messenger可以翻译为信使,用于跨进程传输Message对象。在Message对象中,我们可以附带其他数据,这就实现了数据的跨进程传递。简而言之,Messenger是一种轻量级的IPC方案,在它的底层封装了AIDL。
2017-05-03 21:00:49
707
原创 Android中的序列化方式
在实际开发过程中,我们常常会有序列化对象的需求。在Android中,可以使用两种方式实现对象的序列化,即使用Serializable和Parcelable接口。
2017-05-02 23:35:38
762
原创 IntentFilter匹配规则
我们都知道,启动Activity有两种方式,即隐式启动和显式启动。从优先级来说,显式启动要优先于隐式启动。隐式启动的优点是使用上的灵活性。因此,掌握隐式启动中IntentFilter的匹配规则就至关重要了。
2017-05-01 23:32:43
691
原创 Java基础之IO系列(二)
本文主要讲解IO系列有关字节流对象部分的内容。字节流主要包含FileOutputStream、FileInputStream、BufferedOutputStream、BufferedinputStream四个部分的内容。此外,本文还给出了一些字节流的简单应用。
2015-12-30 22:40:56
531
原创 Java基础之IO系列(一)
本文主要讲解IO系列有关字符流对象部分的内容。字符流主要包含FileReader、FileWriter、BufferedReader、BufferedWriter这四部分。此外,本文就LineNumberReader也进行了简单讲解。
2015-12-30 22:23:55
737
原创 Java基础之常用对象(一)
摘要:Java中有许多实用的类,本文简单讲解了System、Runtime、Date这三个部分的相关知识及其常见用法。
2015-12-25 22:22:56
1032
原创 Java基础之集合框架系列(五)
集合框架内有着一个特殊的工具类Collections,专门对集合进行,里面全都是静态方法,可以直接调用。此外,本文还介绍了另一个常用的工具类Arrays,专门用于对数组进行操作。
2015-12-24 11:21:17
665
原创 java知识点之静态导入
静态导入是jdk1.5后java出现的新特性,可以导入类中的静态成员。这样在使用这些静态成员时就不必再加包名和类名了,为编写程序带来一定便利。
2015-12-24 10:23:08
606
原创 java知识点之增强for循环
1.概述增强型for循环是jdk1.5之后出现的新特性,在用法上与普通的for循环有所不同。其功能得到了拓展,主要用于对集合或数组对象进行遍历操作。
2015-12-24 09:01:58
811
原创 Java基础之集合框架系列(四)
Map也是集合框架中的一员,独立于Collection体系。实际上,Collection称为单列集合,Map称为双列集合。Map集合以键值对的方式进行存储,并且需要保持键的唯一性。Map包含Hashtable,HashMap,TreeMap三个常见的部分,本文即对Map的常见用法进行讲解。
2015-12-22 22:23:00
780
Android文件系统全面讲解
2018-01-27
Java仿QQ项目
2016-01-28
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人