- 博客(18)
- 资源 (33)
- 收藏
- 关注
原创 Android主题切换—夜间/白天模式探究
现在市面上众多阅读类App都提供了两种主题:白天or夜间。 上述两幅图片,正是两款App的夜间模式效果,所以,依据这个功能,来看看切换主题到底是怎么实现的(当然现在github有好多PluginTheme开源插件,很多时候可以使用这些插件,不过我并不想讲怎么用那些插件,正所谓会用轮子还不如会造轮子)。关于更换主题和换肤这里提到是做换主题功能,当然与之类似的就是换肤,换肤现在比较流行的是采用插件化动
2015-08-29 16:50:58 8536 9
原创 Material Design5.x动画实现解析篇一
Material Design设计语言动画篇共推出六种类型的动画效果: 1、Touch feedback(触摸反馈) 2、Reveal effect(揭露效果) 3、Activity transitions(Activity转换效果) 4、Curved motion(曲线运动) 5、View state changes (视图状态改变) 6、Animate Vect
2015-08-28 11:17:56 6244 7
原创 RecyclerView添加Header和Footer
使用过RecyclerView的同学就知道它并没有添加header和footer的方法,而ListView和GirdView都有,但是开发过程中难免有需求需要添加一个自定义的header或者footer,或者不同布局的Item。好了,我们知道如果在ListView中要添加不同的布局的item,都是通过重写getItemViewType()和getViewTypeCount()这两个方法来控制的,OK
2015-08-26 16:34:36 11380 3
原创 Android下拉上滑显示与隐藏Toolbar另一种实现
关于介绍就不说了,不使用嵌套滑动情况下,另一种实现,当然还可以用design包下的CoordinatorLayout.Behavior。比较简单直接添代码:继承RecyclerView.OnScrollListener重写onScrolled方法,同时定义两个抽象方法供我们处理隐藏和显示事件public abstract class RecyclerViewScrollListener extend
2015-08-26 15:25:47 13985 4
原创 Android性能优化典例(二)
1、使用 Maven 依赖方案代替使用导入jar包方案如果项目中需要用到第三方jar包,常用的做法是去网上下载后然后放入libs文件夹,再添加到项目依赖,不过,在Android Studio已经不推荐使用这套做法了,因为如果jar有更新,那么每次都要去下载最新版本然后删除历史依赖再添加新版本的依赖,这样做很繁琐,而在Android Studio中,这个问题使用Maven已经很好的解决了,因为AS中默
2015-08-24 17:02:42 2261
原创 Android实现RecyclerView侧滑删除和长按拖拽-ItemTouchHelper
RecyclerView这个被誉为ListView和GirdView的替代品,它的用法在之前的一篇博文中就已经讲过了,今天我们就来实现RecyclerView的侧滑删除和长按拖拽功能,实现这两个功能我们只需要一个类——ItemTouchHelperItemTouchHelperGoogle官方文档上是这么介绍的: This is a utility class to add swipe to d
2015-08-24 14:03:42 17055 7
原创 Android Studio使用Lint进行代码检查
Android Studio目前已经更新到1.4版本,它作为Google官方推荐的IDE,功能非常强大,其中提供了一套静态代码分析工具,它可以帮助我们检查项目中存在的问题,让我们更有规范性的开发App。它可以检查出:xml文件中是否存在hardcode硬编码、unused resources没有使用到的资源、probable bug可能的bug等等。那么现在我们来测试使用它看看:Android Li
2015-08-21 15:50:46 20193 3
原创 Android性能优化典例(一)
在Android开发过程中,很多时候往往因为代码的不规范、api使用不恰当、控件的使用场景考虑不全面和用户不恰当的操作等都能引发一系列性能问题的,下面就是我目前整理的一些Android开发过程中需要注意的细节,正所谓一颗老鼠屎可以坏了一锅粥,细节决定成败下面就是一些性能优化的方案:1、Android中别使用enum,使用static final 代替枚举enum,因为使用enum比使用static需
2015-08-20 19:38:02 2668
原创 Android内存优化(使用SparseArray和ArrayMap代替HashMap)
在Android开发时,我们使用的大部分都是Java的api,比如HashMap这个api,使用率非常高,但是对于Android这种对内存非常敏感的移动平台,很多时候使用一些java的api并不能达到更好的性能,相反反而更消耗内存,所以针对Android这种移动平台,也推出了更符合自己的api,比如SparseArray、ArrayMap用来代替HashMap在有些情况下能带来更好的性能提升。介绍它
2015-08-20 16:06:15 104926 47
原创 Volley网络框架完全解析(实战篇)
好了,今天就通过一个瀑布流demo,来使用Volley框架请求网络图片。前言: 我们使用NetworkImageView显示图片: 1、因为该控件可以自动的管理好请求的生命周期,当与父控件detach或者它移出屏幕时可以自动取消网络请求 2、该控件会根据我们所设置的NetworkImageView宽高来进行图片的压缩 3、该控件可以设置默认状态下显示的图片,可以设置在请求失败时
2015-08-15 15:57:00 2498 1
原创 Volley网络框架完全解析(缓存篇)
在上一篇中讲完了Volley框架怎么使用,那么这篇就来讲讲Volley框架的缓存机制我们看Volley内部源码发现: Volley框架内部自己处理了DiskBasedCache硬盘缓存,但是没有处理LruCache内存缓存,因为一般在处理图片的问题上才更多的用到LruCache缓存,但是它提供了一个ImageCache接口供我们自己实现,该接口默认需要实现两个方法:getBitmap(Strin
2015-08-14 17:50:55 7344 1
原创 使用Material Design Tint和视图详解
视图首先来讲Material Design 视图的概念,在新的api中,新添加了z轴的概念,z轴垂直于屏幕,用来表现元素的层叠关系,z值(海拔高度)越高,元素离界面底层(水平面)越远,投影越重,这里有一个前提,所有的元素的厚度都是1dp。 Material Design中UI主打扁平化,但是这种扁平化是扁而不平,是对现实的拟物扁平化,所以引入z轴空间的概念,即所有元素都有默认的海拔高度,对它进行
2015-08-10 15:49:41 12961 3
原创 使用Material Design 应用主题
自从去年Google推出Material Design这款设计语言后,新的设计规范越来越受开发者们的喜爱,这篇文章包括后续文章就是慢慢的介绍在App中使用Material Design界面主题、动画、及各种UI设计规范,至于今年推出的Design包所有design控件的介绍在以前几篇就一一介绍了。Material Design设计语言它的设计思想为:把物理世界的体验带进屏幕,去掉现实中的杂质和随机性
2015-08-07 19:49:58 8812 4
原创 Android Data Binding代码实践(告别findViewById)(四)
Data Binding实战(一) Data Binding语法解析(二) Data Binding高级用法(三) 好了,继前三篇学习了Data Binding之后,我们可以发现它的强大之处有这么几点: 1、使用MVVM模式,让整个项目结构清晰明了 2、通过ViewModel连接View和Model,使得View与Model层解耦,分层后各司其职,维护方便 3、易于项目的测试
2015-08-06 16:54:29 3672 3
原创 Android Data Binding高级用法-Observable、动态生成Binding Class(三)
设置View的id虽然说Data Binding这种分层模式使得我们对数据的传递简单明了,一般情况下我们可以不设置View的id,不使用findViewById即可对View进行数据上一系列的操作,不过有时候根据情况我们需要对某些View设置id,但是还是可以不findViewById即可得到该控件的对象,因为设置id后ViewDataBinding类会自动生成对应的控件对象,如:<layout x
2015-08-06 16:14:06 18571 3
原创 Android Data Binding语法解析(二)
上篇我们知道了Data Binding的最简单的用法,那么Data Binding其中最为重要也是最复杂的其实就是在xml布局文件中给对应的控件进行数据绑定了,接下来就一一说明Data Binding的使用各个场景的语法。我们以User类这个Model为例:public class User { private String userName; private String use
2015-08-05 22:05:51 7372 4
原创 Android Data Binding实战(一)
在今年Google I/O大会上,Google推出Design Library库的同时也推出了Android Data Binding,那么什么是Data Binding?其名曰数据绑定,使用它我们可以轻松实现MVVM(模型-视图-视图模型)模式,来实现应用之间数据与视图的分离、视图与业务逻辑的分离、数据与业务逻辑的分离,从而达到低耦合、可重用性、易测试性等好处,那么我们首先先来看看什么是MVVM模
2015-08-05 16:07:50 3808
原创 使用Android Studio手把手教你将应用打包+代码混淆
最近几天用Google的Design库写了个App,使用Android Studio将app打包时遇到的几个瓶颈,所以把详细步骤写入下来。AS中怎么获取应用签名这和eclipse不同,eclipse中可以直接在软件内部查找到,而AS则需要通过命令行形式拿到,具体先进入.android目录下,如图: AS将应用打包AS版本1.3,步骤都以截图为示例:AS中Build->选择Generate sig
2015-08-04 17:00:43 3997
DiskLruCache
2015-07-23
CollapsingToolbarLayout使用 源码下载
2015-07-16
ViewFlipper详解demo
2015-02-26
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人