自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

EasyLiu

成功的路上并没有捷径可走,唯有一步一个脚印

原创 Gradle基础之Groovy语法

Gradle基础之Groovy语法 在使用Android Studio开发app的过程中,都会接触到Gradle配置,而Gradle的配置是基于Grovvy语法的。因此,要想熟练的使用Gradle进行配置,就必须熟悉Groovy语法,下面开始讲解下Groovy的基本语法。 Groovy可以看作...

2018-01-07 22:55:33

阅读数 2242

评论数 0

原创 一个简单的侧滑菜单SimpleSlidingMenu

一个简单的Android侧滑菜单,支持left, right,left_right三种菜单模式,支持edge,all两种滑动模式,支持设置菜单的宽度,支持滑动动画效果,解决了滑动冲突问题。

2017-05-14 11:36:34

阅读数 573

评论数 0

原创 仿微信:Activity跟随手指滑动效果SlideFinishActivity

概述让Activity跟随者手指的滑动而滑动,当向右滑动到一定距离或者往右滑动到达一定速度就finish,类似于微信滑动finish的效果。 1、支持边界滑动和全屏滑动两种模式 2、解决了滑动冲突问题,例如上图中Activity当中就包含了ViewPager,解决了和ViewPager的滑动冲突...

2017-05-14 11:23:25

阅读数 1626

评论数 1

原创 Android应用层View触摸事件分发机制

概述前两篇博客从源码的角度对View绘制流程进行了分析,那么当用户需要跟View进行交互的时候,比如点击按钮的时候,按钮是如何得到点击事件的呢?当用户在屏幕上进行点击或触摸的时候,事件是如何传递到各个View的呢?这个就是本篇博客研究的点:View事件分发机制。只有同时掌握View事件分发机和Vi...

2017-04-25 23:22:00

阅读数 1265

评论数 0

原创 Android应用层View绘制流程之measure,layout,draw三步曲

概述上一篇博文对DecorView和ViewRootImpl的关系进行了剖析,这篇文章主要是来剖析View绘制的三个基本流程:measure,layout,draw,只有把这三个基本流程搞清楚了,平时在自定义View的时候才会有清晰的思路!开始进入正题。View的measure过程三个流程均是从V...

2017-04-23 20:53:40

阅读数 1759

评论数 0

原创 Android应用层View绘制流程之DecorView与ViewRootImpl

概述一直对Android中View的整个绘制流程不是很了解,View是怎么添加到Activity当中去的?当View中的内容发生改变的时候是怎样执行界面的刷新的?因此,今天准备从源码的角度来对View的整个绘制流程来进行分析,源码基于API25。由于篇幅限制,这篇文章只分析顶层视图DecorVie...

2017-04-23 20:47:11

阅读数 611

评论数 0

原创 自定义View之简单自定义圆形进度条

达到的效果如下: 从上面的效果可以看出,主要有以下几个自定义属性: 1、背景颜色 2、进度扇形颜色 3、半径 4、起始角度 因此,在attrs.xml中定义如下属性:<?xml version="1.0" encoding="utf-8"?...

2017-03-06 00:42:53

阅读数 835

评论数 0

原创 Material Design当中的动画(二)

继续之前的Material Design当中的动画讲解。1、曲线运动PathInterpolator类是一个基于贝塞尔曲线(Bézier curve)或路径(Path)对象上的新的插值器。 系统提供了三种曲线: @interpolator/fast_out_linear_in.xml @in...

2017-03-05 11:58:36

阅读数 771

评论数 0

原创 Material Design当中的动画(一)

在material主题当中为按钮和activity transition提供了很多默认的动画,并且在API21及以上允许我们自定义这些动画,包括以下几个部分: 1、触摸反馈动画 2、循环揭露动画 3、Activity transitions动画 4、曲线运动 5、视图状态改变

2017-03-04 20:30:59

阅读数 386

评论数 0

原创 Android属性动画(PropertyAnimation)(下)

继续之前的属性动画讲解。上一篇http://blog.csdn.net/liuyi1207164339/article/details/53590451对属性动画进行了较为详细的讲解,包括ValueAnimator、ObjectAnimator、AnimateSet以及自定义TypeEvaluat...

2017-02-28 00:17:20

阅读数 421

评论数 0

原创 Android属性动画(Property Animation)(上)

从Android3.0 (API11)开始引入了属性动画,跟早期的View动画相比,属性动画具有以下优点: 1、属性动画允许对任意对象的属性执行动画操作,而早期的视图动画仅仅只能对View执行动画操作。 2、View动画只能改变视图的几个方面,比如对视图进行缩放以及旋转等,但是像背景颜色这种就无法...

2016-12-12 22:51:31

阅读数 1899

评论数 1

原创 Material Design当中Drawable新特性

参考: https://developer.android.com/training/material/drawables.html 1、简介 在Material Design主题当中给drawable增加了一些新的功能: 1、图片着色:可以直接为BitmapDrawable和NinePat...

2016-08-28 15:34:13

阅读数 1244

评论数 0

原创 Material Design中的Elevation和shadows

参考: https://developer.android.com/training/material/shadows-clipping.html#Shadows https://material.google.com/material-design/elevation-shadows.html#...

2016-08-27 18:57:24

阅读数 3552

评论数 0

原创 CardView的使用

参考:https://developer.android.com/training/material/lists-cards.html#CardView 1、简介 Android5.0当中介绍了一个全新的控件:CardView。CardView继承自FrameLayout,并且拥有圆角和阴影效...

2016-08-10 17:10:55

阅读数 1084

评论数 0

原创 Android Design Support之CoordinatorLayout实战

参考: https://android-developers.blogspot.com/2015/05/android-design-support-library.html http://blog.csdn.net/xyz_lmn/article/details/48055919 1、简介 今...

2016-08-09 22:21:04

阅读数 2859

评论数 0

原创 RecyclerView的使用

参考:https://developer.android.com/training/material/lists-cards.html 1、简介 RecyclerView已经出现了很长一段时间了,伴随着Material Design也就是Android L的出现而出现,它的灵活性比ListView...

2016-08-09 18:23:51

阅读数 615

评论数 0

原创 Android Design Support之TabLayout实战

参考:https://android-developers.blogspot.com/2015/05/android-design-support-library.html 1、简介 这次来讲一下Android Design Support中的一个控件:TabLayout。 TabLayout...

2016-08-08 17:08:32

阅读数 617

评论数 0

原创 Android Design Support之Snackbar实战

参考: https://developer.android.com/training/snackbar/index.html https://android-developers.blogspot.com/2015/05/android-design-support-library.html ...

2016-08-07 11:27:10

阅读数 460

评论数 0

原创 Android Design Support之FloatingActionButton实战

参考:https://android-developers.blogspot.com/2015/05/android-design-support-library.html 1、概述 这次我们来讲一个Android Design Support里面的一个组件:FloatingActionBut...

2016-08-06 23:23:16

阅读数 529

评论数 0

原创 Android Design Support之Floating labels for editing text实战

参考:https://android-developers.blogspot.com/2015/05/android-design-support-library.html 1、概述 这次我们来讲一个Design Support里面的一个组件:TextInputEditText。 我们都用过E...

2016-08-06 22:44:23

阅读数 629

评论数 0

原创 Android Design Support之NavigationView实战

1、简介 Android在2015/05推出了Android Design Support Library,专门针对Material Design提供了很多Material Design组件,并且向后兼容至Android 2.1,关于Android Desgin Support Library,...

2016-07-24 10:35:53

阅读数 3699

评论数 1

原创 Material Design以及ToolBar实战

最近发现越来越多的App使用Material Design主题,最明显的一个特征是状态栏可以变色或者设置成透明,以及根据App的风格定制Color Palette,扁平化的风格,在视觉上给人一种全新的感觉,非常激动,于是决定写这篇博客。 关于Material Design详细介绍,请参考: htt...

2016-07-14 13:20:16

阅读数 835

评论数 0

原创 APP启动引导界面的编写

1、我们都知道当第一次打开一个APP的时候首先是在欢迎界面停留一段时间,然后进入引导界面。引导界面里面的页面可以左右滑动,当滑动到最后一个页面的时候一般在页面当中有一个按钮,点击按钮就可以进入主界面了。 2、然后以后每次打开APP,不会进入引导界面,只会在欢迎界面停留一定时间然后进入主界面。 今天...

2016-06-25 23:01:47

阅读数 4102

评论数 2

翻译 Intent匹配和解析

来自:https://developer.android.com/guide/components/intents-filters.html 当系统收到隐式Intent以启动 Activity 时,它根据以下三个方面将该 Intent 与 Intent 过滤器进行比较,搜索该Intent的...

2016-06-23 12:00:37

阅读数 1616

评论数 0

翻译 Intent 和 Intentfilter

来自:https://developer.android.com/guide/components/intents-filters.html Intent 是一个消息传递对象,您可以使用它从其他应用组件请求操作。尽管 Intent 可以通过多种方式促进组件之间的通信,但其基本用例主要包括以下三个...

2016-06-23 10:49:30

阅读数 3434

评论数 0

原创 关于AIDL一些需要注意的地方

1、从远程客户端进程来的调用是由不同的线程发起的,运行在不同的进程。所以,服务端必须处理好在同一时刻有多个从不同线程过来的请求的情况。也就是说,一个AIDL的实现必须是完成线程安全的,必须手动处理多线程的情况。 2、AIDL接口当中的oneway关键字代表远程调用的行为。当使用的时候,远程调用不会...

2016-06-19 13:53:25

阅读数 7133

评论数 0

原创 启动远程service的两种方式:显示和隐式

1、显式启动 Service端: 需要声明android:exported="true",这样别的APP才能访问。             android:exported= "true"> 客户端: 需要知道Serc...

2016-06-19 10:48:53

阅读数 8738

评论数 0

原创 使用AIDL实现IPC通信之——实现服务端主动发送数据给客户端

前一篇文章讲了怎么在客户端使用AIDL实现IPC通信,调用远程服务端的方法。但是,远程服务端并不能主动给客户端返回信息。在很多情况下是需要远程服务端主动给客户端返回数据,客户端只需要进行监听即可,这是典型的观察者模式。这篇文章主要来解决一下这个问题。 代码主要来自ApiDemos/App/Se...

2016-06-19 01:34:23

阅读数 4917

评论数 5

原创 使用AIDL实现IPC通信之——简单调用远程服务的方法

为什么使用AIDL AIDL和Messenger都可以实现跨进程通信,Messenger底层也是基于AIDL的。使用AIDL而不使用Messenger的情况是:允许从不同应用的客户端访问你的Service且你的Service需要处理多线程的情况,因为Messenger中的消息默认是串行执行的。还有...

2016-06-19 00:00:29

阅读数 2372

评论数 0

翻译 Bound Service简介

来自:https://developer.android.com/guide/components/bound-services.html 绑定服务是客户端-服务器接口中的服务器。绑定服务可让组件(例如 Activity)绑定到服务、发送请求、接收响应,甚至执行进程间通信 (IPC)。 绑定服务通...

2016-06-16 20:44:08

阅读数 1379

评论数 0

转载 Android代码规范

基本的命名法 Java编程比较常见的有下面三种命名方式 驼峰(Camel)命名法:又称小驼峰命名法,除首单词外,其余所有单词的第一个字母大写。帕斯卡(pascal)命名法:又称大驼峰命名法,所有单词的第一个字母大写下划线命名法:单词与单词间用下划线做间隔 一般建议拿来做命名的单词要比较精悍短小,...

2016-06-16 15:29:00

阅读数 421

评论数 0

原创 使用Messenger实现IPC通信

参考:https://developer.android.com/guide/components/bound-services.html Messenger简介 如需让接口跨不同的进程工作,则可使用 Messenger 为服务创建接口。服务可以这种方式定义对应于不同类型 Message 对象的 ...

2016-06-16 13:15:00

阅读数 1460

评论数 0

原创 构建一个能够接收别的App数据的APP

我们都知道每个Android手机上都有图库,图库中的图片可以发送给别的APP进行显示,比如发送给微信好友、发送到朋友圈以及发送给电脑等(这个经常使用)。那这是怎么实现的呢,我们能不能自己构建一个APP,当在图库中点击发送的时候能够从可选项中找到我们的APP,然后在APP当中显示图片。这是可以的,而...

2016-06-16 00:55:20

阅读数 3280

评论数 1

原创 在Activity和Service之间使用Binder和回调接口进行通信

Activity和Service之间的通信方式有多种:通过broadcast、扩展Binder类、使用Messenger、使用AIDL等。 扩展Binder类使用场景 如果你的服务仅供本地应用使用,不需要跨进程工作,则可以实现扩展Binder 类,让你的客户端通过该类直接访问服务中的公共方法...

2016-06-15 19:36:54

阅读数 6624

评论数 1

翻译 Android Service详解

来自:https://developer.android.com/guide/components/services.html Service是一个可以在后台执行长时间运行操作而不使用用户界面的应用组件。服务可由其他应用组件启动,而且即使用户切换到其他应用,服务仍将在后台继续运行。 此外,组件可...

2016-06-14 13:03:42

阅读数 2856

评论数 0

原创 在APP当中调用Android系统摄像头进行视频录制

1、获得摄像头Feature和写文件的权限 <uses-feature android:name="android.hardware.camera2" android:required="true" /> ...

2016-06-12 22:16:48

阅读数 15502

评论数 1

原创 调用Android系统摄像头进行拍照以及从图库选择图片

很多时候我们需要调用系统摄像头进行拍照,然后得到拍照之后的图片,然后对图片进行一些处理。比如微信设置头像,就可以选择调用设备存在摄像头APP进行拍照,然后对图像进行裁剪,最终设置为头像,把头像传给服务器保存。 调用系统摄像头拍照主要分为以下几个部分: 1、获得摄像头Feature和写文件的权限...

2016-06-11 14:10:06

阅读数 7633

评论数 2

翻译 管理Android音频播放

如果你的APP播放音频,你必须能够控制音频的播放。为了保证用户体验,你的APP必须要能够获取音频焦点,这样就能保证多个APP不会在同一时刻播放音频。 1、确认使用的音频流 Android为playing music, alarms, notifications, the incoming ca...

2016-06-09 20:00:13

阅读数 2159

评论数 0

原创 Java并发编程之——CyclicBarrier的使用

首先看一下官方关于CyclicBarrier的简介: /** * A synchronization aid that allows a set of threads to all wait for * each other to reach a common barrier point. ...

2016-06-09 16:33:38

阅读数 2707

评论数 0

原创 Java并发编程之——CountDownLatch的使用

最近在开发Android项目的时候有一个需求:在Service中开启多个线程并发的执行任务,当这三个线程执行完毕之后,主线程才能继续往下执行。刚开始使用的是AsyncTask+AtomicInteger的方式,然后在onpostexecute回调中对AtomicInteger进行自增且判断其值是否...

2016-06-06 18:54:53

阅读数 5447

评论数 1

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