自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(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

GreenDAO的CRUD操作

GreenDAO的CRUD操作

2015-09-14

在线热更新Dexposed框架

在线热更新Dexposed框架

2015-09-09

SVG矢量动画

SVG矢量动画

2015-09-06

ThemeChangeDemo

android 主题切换

2015-08-29

materialdesign动画示例

materialdesign动画示例

2015-08-28

RecyclerViewHeaderAndFooter

RecyclerViewHeaderAndFooter添加头部和尾部

2015-08-26

RecylerView侧滑删除和拖拽

RecylerView侧滑删除和拖拽

2015-08-24

Android事件分发机制

Android事件分发机制测试Demo

2015-08-18

Volley请求网络图片

使用Volley请求网络图片防止OOM

2015-08-15

Volley.jar

Volley.jar

2015-08-12

Material CheckBox

Material Design 风格的checkbox,Material Design 风格的checkbox

2015-08-07

Android Data Binding

Android Data Binding结合RecyclerView的使用

2015-08-06

插件化开发-动态加载

插件化开发-动态加载已安装apk和未安装的apk

2015-07-29

DiskLruCacheDemo

DiskLruCacheDemo

2015-07-23

DiskLruCache

Google又提供了一套硬盘缓存的解决方案:DiskLruCache(非Google官方编写,但获得官方认证),怎么使用呢?下载好了之后,在项目中新建一个名为libcore.io包,然后将DiskLruCache.java代码文件复制到这个包中即可开始使用。

2015-07-23

LruCache使用

LruCache使用

2015-07-21

Material Design icon图标

Material Design icon图标

2015-07-19

FloatingActionButton的使用

Google提供的Design Library中FloatingActionButton的使用。 和配合Snackbar的使用

2015-07-19

ViewPager的使用

ViewPager的动画效果实现,利用Google提供的两种动画来说明自定义动画。

2015-07-19

CollapsingToolbarLayout使用 源码下载

CollapsingToolbarLayout作用是提供了一个可以折叠的Toolbar,它继承至FrameLayout,给它设置layout_scrollFlags,它可以控制包含在CollapsingToolbarLayout中的控件(如:ImageView、Toolbar)在响应layout_behavior事件时作出相应的scrollFlags滚动事件(移除屏幕或固定在屏幕顶端)。

2015-07-16

日期选择控件(可防止屏幕旋转抛出的异常)

日期选择控件(可防止屏幕旋转抛出的异常)

2015-07-13

AppBarLayout实现上滑隐藏ToolBar

AppBarLayout实现上滑隐藏ToolBar,下滑出现

2015-07-12

NavigationView实现侧滑菜单栏

将介绍使用Google最新推出规范式设计中的NavigationView和DrawerLayout结合实现侧滑菜单栏效果

2015-07-11

CardView的使用

CardView是support-v7包下的一个控件,google新推出的一款符合材料设计的Layout。。。

2015-07-11

RecyclerView实现瀑布流

RecyclerView实现瀑布流效果。

2015-07-04

RecyclerView的使用

提供一种插件式编程,开发者对RecyclerView的设计更加自由

2015-07-04

使用DialogFragment替代AlertDialog

Google官方推荐使用DialogFragment代替AlertDialog,很好的解决屏幕旋转产生的问题。。。

2015-05-25

ListView添加CheckBox复选框

在ListView中添加CheckBox,实现多选条目

2015-05-15

ViewFlipper详解demo

该demo主要是说明了ViewFlipper这个控件怎么使用,并加入动画效果和点击暂停过一段时间又自动切换,可谓是实现了ViewFlipper功能外又完善了它的自动切换效果

2015-02-26

android 指南针 源码

android 指南针 源码

2014-08-21

java实现的多媒体播放器

ava实现的简单多媒体播放器

2014-08-20

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除