项目笔记
文章平均质量分 96
李可乐
资浅Android开发,正在越走越深。
展开
-
RecyclerView实现addHeadView的三种方法原理说明和利弊分析(footHead同理)
介绍上一篇博客我分析了ListView的源码看Google是怎么样实现addHeadView的,源码的思路是对绑定在ListView的Adapter做转换,在我们调用addHeadView的时候把已经写好的BaseAdapter转换成HeaderViewListAdapter这一组件,在代码内部调用BaseAdapter.getView方法。这样写的好处是解耦和不影响我们原有代码的前提下做好转换。这原创 2016-03-25 17:10:44 · 6893 阅读 · 0 评论 -
Android开发-优雅的实现动态图片排版(类似微信图片展示效果)
介绍效果展示 说明上面的图片排版 - 实现了动态布局,针对不同图片的数量展示不同的排版布局。效果类似微信朋友圈的图片排版,效果略有不同。 - 正方形的图片控件,高度会随着宽度一起变化。实现这样的布局有很多种思路,只是什么样的方式更优雅。本文提供一种相对优雅的方式供大家参考。思路首先,优雅的方式肯定不是定义多种的布局,然后根据图片数量,判断显示那种布局。这样的代码不优雅。其次,也没有必原创 2016-11-04 00:42:46 · 13230 阅读 · 3 评论 -
Android开发-BottomSheet的使用和说明
Android开发-BottomSheetDialogFragment的使用和封装介绍在官方提供的android.support.design.widget包中,加入bottom sheet能够很方便的实现一些酷炫的功能。官方blog说明得比较简单,中文博客上也有一些介绍和说明 Android Bottom Sheet详解本文就是从这些博文中开始探索,最后总结一些使用经验和封装方便之后的使用。简单原创 2016-12-09 12:54:56 · 9985 阅读 · 4 评论 -
Android开发-备忘录模式在Android的应用和模拟实验
介绍在上一篇设计模式-备忘录模式(Memento)的详解中,使用文字和示例代码解释了备忘录模式。对于备忘录模式的理解是本文基础。如果还不了解备忘录模式还请参考上一篇 首先我们都知道Android移动设备因为内存大小问题,会经常发生GC内存回收操作。关于GC内存回收的发生时机有多种,以后再详解。这里就举例一种常见情况,用户在某个Activity中按下Home键返回桌面,很长时间后通过“近期任务”列表原创 2017-07-05 16:48:23 · 1495 阅读 · 0 评论 -
Android开发-状态栏着色原理和API版本兼容处理
介绍先上实际效果图,有三个版本请注意区分API版本 API>=20 API=19 API<19 以上的效果我们称之为对状态栏的着色,而非沉浸式状态栏,那是另外的东西。 想要实现以上的效果并不难,阅读本文了解原理后,就会觉得想要以上的效果真的很简单。 本文旨在总结我的理解告诉读者一步步实现状态栏着色的原理。原理第一步-设置透明状态栏对状态栏的控制一切基础都源于 s原创 2017-03-11 16:54:27 · 2849 阅读 · 1 评论 -
Fresco的封装和使用说明以及获取缓存中的Bitmap对象
Fresco介绍Fresco是facebook开源的图片加载框架。 关于 Fresco Fresco 是一个强大的图片加载组件。 Fresco 中设计有一个叫做 image pipeline 的模块。它负责从网络,从本地文件系统,本地资源加载图片。为了最大限度节省空间和CPU时间,它含有3级缓存设计(2级内存,1级文件)。 Fresco 中设计有一个叫做 Drawees原创 2016-03-23 17:51:31 · 13311 阅读 · 4 评论 -
Android开发-Handler引起的内存泄漏-实验、分析、总结。
介绍最近在恶补Handler的知识,其中就涉及到了Handler引起的内存泄露问题,网络上有很多的分析文章。我就按照这些文章的思路,写代码验证,主要是验证和记录。 使用的内存检测工具是:LeakCanary 中文使用说明 英文原文: http://www.androiddesignpatterns.com/2013/01/inner-class-handler-memory-leak.h原创 2016-05-24 20:39:46 · 4427 阅读 · 9 评论 -
Android内存泄露检测工具和实际开发中遇到的内存泄露问题解析
介绍内存泄露是平常开发中经常遇到的,有些时候稍不注意就会发生,而且还不易察觉,这就需要工具来帮助检测。本文主要介绍内存检测工具和我在开发中遇到的内存泄露问题和解决方案。内存泄露的原理具体的原理涉及到虚拟机垃圾回收机制知识,这里只为下文作介绍说明基本原理。想深度了解的请google。 内存泄露是指无用对象(不再使用的对象)持续占有内存或无用对象的内存得不到及时释放,从而造成的内存空间的浪费称为内存原创 2016-05-23 17:41:18 · 3916 阅读 · 0 评论 -
MVP架构-Android官方MVP项目和响应式MVP-RxJava项目架构分析对比解读
介绍MVP这个架构一直是Android开发社区讨论的焦点,每个人都有自己的分析理解众说纷纭。直到GitHub上Google官方发布用MVP架构搭建的项目。感觉是时候分析了。MVP架构简介这不是本文重点,所以摘抄自李江东的博文MVP架构简介 对于一个应用而言我们需要对它抽象出各个层面,而在MVP架构中它将UI界面和数据进行隔离,所以我们的应用也就分为三个层次。View:对于View层也是视图层,在原创 2016-05-27 17:45:11 · 16723 阅读 · 5 评论 -
AutoCompleteTextView的使用和源码分析以及实现响应式输入提示功能
在我的项目中在使用AutoCompleteTextView用来为用户输入提示。提示内容是来自网络返回,效果如下 这篇博客记录我的分析和编码过程1.简单AutoCompleteTextView使用简单代码示例1:public class CountriesActivity extends Activity { protected void onCreate(Bundle icicle)原创 2016-03-21 19:15:03 · 1740 阅读 · 0 评论 -
Android官方说明-Activity任务栈
任务和返回栈本文内容保存 Activity 状态管理任务定义启动模式处理关联清理返回栈启动任务文章Android 多任务运行机制另请参阅Android 设计:导航 清单文件元素概览屏幕应用通常包含多个Activity。每个 Activity 均应围绕用户可以执行的特定操作设计,并且能够启动其他转载 2016-05-30 23:35:48 · 2670 阅读 · 0 评论 -
Android开发-数据存储SharedPreferences工具类、Set<String>保存问题、源码分析
介绍SharedPreferences作为Android提供给我们方便简单的存储数据的类。它内部的实现实际上是xml格式的文件存储数据,同时为了提升读写性能同时实现了内存缓存机制。关键源码在android.app包中的SharedPreferencesImpl类里面。值得一提的是Context实例的getSharedPreferences是抽象方法,看不到实现。因为整个Context套件被设计成装饰原创 2016-05-20 22:15:42 · 4947 阅读 · 0 评论 -
RxAndroid和Retrofit结合使用-网络调用和生命周期分析
说明这是我在项目使用RxAndroid、RxJava和Retrofit时的一些记录和分析。记录1:网络操作相关在使用RxAndroid和Retrofit进行网络操作时,有如下这些代码代码: getMyFollowingBoard(mTokenType, mTokenAccess, mIndex, mLimit) .doOnUnsubscribe(new Action0原创 2016-04-06 19:18:28 · 5490 阅读 · 0 评论 -
JSON的使用、利用正则表达式解决不定类型返回Json格式
介绍作为移动端开发者,和服务器的通信是少不了了。下面我总结一我在开发中遇到有关json的问题一般Json在我刚入门的时候,在公司的写代码当时的网络返回也不复杂,10个字段以内,基本上熟悉Json的固定格式,手动写Bean接收数据,只要用心字段名称和类型对应就不会出问题。 推荐的Json格式校验网站,http://json.parser.online.fr/ 问题:就是如果字段复杂,就要花很多时原创 2016-03-31 15:02:09 · 7491 阅读 · 0 评论 -
RxAndroid项目实践-使用RxJava响应式编码实现知乎日报的欢迎界面
介绍在我的项目中,使用RxAndroid和RxJava搭建项目。在刚开始是很痛苦的,每个操作符和方法都不熟悉。现在项目完成过半,对RxAndroid开始有些熟悉。就从一个实际功能开发入手,总结我对RxAndroid的理解。效果演示 说明: - 从用户角度:是一张华丽丽图片的放大,然后进入主页,很好的用户体验。(参考自:知乎日报) - 从App的角度:异步属性动画Animator的原创 2016-04-10 20:50:48 · 4959 阅读 · 0 评论 -
源码分析-ListView组件addHeaderView()方法的源码解析
分析动力最近在写自己的项目,使用到RecyclerView这控件替代我之前常用的ListView。使用起来当然感觉比之前的ListView功能强大太多。但是目前RecyclerView却没有添加addHeadView()和addFooterView()这两个列表组件常用的功能。网络上有很多博客都有介绍他们的方法给RecyclerView添加这两个功能,主要就是在onCreateViewHolder和原创 2016-03-23 17:07:31 · 1700 阅读 · 0 评论 -
Android-怎样计算Bitmap的内存占用和Bitmap加载优化
介绍在Android开发中Bitmap肯定是绕不过去的,很多时候我们只是使用图片框架加载图片,具体细节的Bitmap对内存的使用图片框架已经帮我们封装好了。但是对Btimap对内存的影响我们还是需要了解的。内存占用首先要清楚Bitmap的文件大小肯定不是实际的内存加载大小。因为文件只是存储的信息,加载到内存中显示出来时还需要经过转换。获取运行的时的内存占用: 针对Bitmap...原创 2018-04-12 17:05:49 · 1695 阅读 · 0 评论