![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Android进阶
文章平均质量分 81
ruancoder
这个作者很懒,什么都没留下…
展开
-
浅析Handler引起的内存泄漏及解决方法
在进行异步操作时,我们经常会使用到Handler类。最常见的写法如下。public class MainActivity extends Activity { ...... private Handler mHandler = new Handler() { @Override public void handleMessage(Message原创 2016-09-06 11:52:12 · 6496 阅读 · 1 评论 -
总结Android调用系统相机拍照遇到的坑
拍照功能在应用开发中几乎已成为标配,例如用户通过拍照上传头像。实现拍照功能的方式有两种。第一种是使用相机API(即Camera类)来自定义拍照,第二种是使用Intent调用系统相机来拍照。其中最常见的方式是直接调用系统相机拍照来获取照片。调用系统相机获取照片的流程如下,这里省去了声明权限和动态权限申请:private String mFilePath;// 需要初始化,路径自定义pr原创 2017-01-11 15:46:02 · 14295 阅读 · 0 评论 -
基于ViewGroup实现自动换行标签控件
在上一篇博文 基于RelativeLayout实现自动换行标签控件 中,采用了继承RelativeLayout来实现,主要是对addRule()方法的使用。我们也可以采用继承ViewGroup来达到同样的效果。先上效果图。实现思路:标签View占据的是一个矩形空间,其在父视图ViewGroup中布局位置时,是通过它的四条边距离父视图的左边距和上边距来决定的。我们原创 2016-08-06 14:15:47 · 1986 阅读 · 0 评论 -
基于RelativeLayout实现自动换行标签控件
在开发中,我们有时会遇到显示标签的功能。比如做社交app,用户有标签;做电商app,商品也同样有标签......显示标签时,我们需要一次展示出多个标签,但是单个标签的字数可能不同,当一行不足以容纳时,需要换行显示。系统自带控件无法实现该效果,所以我们需要自定义控件来解决。实现效果如下:关于自动换行,有多种实现方式,这里基于RelativeLayout来实现。实现思路:原创 2016-08-04 01:32:29 · 4163 阅读 · 0 评论 -
inflate()方法详解和源码分析
在开发中,我们经常需要使用到LayoutInflater,通过该对象的inflate()方法,将一个layout布局文件实例化为View对象。关于LayoutInflater对象的获取,参考博文:http://blog.csdn.net/ruancoder/article/details/51760942今天主要对inflate()方法的使用和源码进行分析。(1).in原创 2016-08-01 23:23:13 · 13939 阅读 · 3 评论 -
更新UI的四种方式分析
在Android开发中,更新UI有以下四种常用方式。方式一:Handler类的sendEmptyMessage()或sendMessage()方法。private Handler mHandler = new Handler() { @Override public void handleMessage(Message msg) { if (msg.what ==原创 2016-07-31 23:13:21 · 3873 阅读 · 0 评论 -
使用PinnedHeaderListView实现固定头部的列表
在手机自带的通讯录中,我们会发现联系人被分组,按首字母索引排列,当列表向上滑动时,分组的标题栏会悬浮在列表顶部。常用的一些app如美团的选择城市,也是使用的这种效果。效果图如下。关于这个效果,实现的方式有多种,这里使用PinnedHeaderListView实现固定头部的列表。实现步骤:(1).PinnedHeaderListView的实现首先是Pi原创 2016-07-30 23:42:21 · 4795 阅读 · 1 评论 -
浅析Fragment为什么需要空的构造方法
今天,有同事在看了我的代码后,告诉我当我们的类继承自Fragment时,需要添加一个空的public构造方法。我很好奇问他为什么,他说官方建议我们这么做,不然可能会出问题,我们的产品已经被友盟统计到因Fragment没有空的构造方法而报错。晚上回来,打算研究下。我们在Android Studio中创建Fragment类,如图所示。创建完后的代码如下。public原创 2016-07-23 01:25:49 · 6826 阅读 · 1 评论 -
HandlerThread类的使用和分析
概述HandlerThread继承自Thread类,本质上还是Thread。与普通Thread的区别在于,它在创建一个线程的同时也创建了一个绑定该线程的消息循环,可以在当前线程中分发和处理消息。Handy class for starting a new thread that has a looper. The looper can then be used to create ha原创 2016-09-06 18:16:53 · 2800 阅读 · 0 评论 -
Android中主流状态栏效果实现
Android在早期的系统版本中,状态栏是不支持修改的,所以打开任何应用程序会发现顶部的状态栏始终是黑条。在Android 4.4(KitKat)之后,系统的状态栏开始支持开发者定制和修改,包括显示或隐藏,更改颜色等(嗯,一定是抄袭ios的...),又在Android 5.0(LOLLIPOP)进行了改进。这样一来,我们就可以让系统状态栏跟随应用程序改变了。下面总结了市面上几种常见的Sta原创 2017-01-16 10:43:55 · 2087 阅读 · 0 评论