Android-性能优化

前言

性能检测与分析,一直在 APP 开发中相当重要,但又被我们常常忽略。很多 APP 或者开发者总是急功近利,总想着快速充实 APP 的相关功能,把开发进度放在首位没有问题,可很多时候就没有然后了,这在整个开发界屡见不鲜。
在这样的大背景下,加之我之前写的 RxJava 2.0 系列 收到较好的反馈,诱导我想出这么一个性能优化系列。

Read more   2017/11/3 posted in  Android

Android-自定义View播放Gif动画

前言

GIF是一种很常见的动态图片格式,在Android中它的使用场景非常多,大到启动页动画、小到一个Loading展示,都可以用GIF动画来完成,使用也很方便,直接从美工那边拿过来用就成。如果项目赶时间或者自定义原生动画太麻烦,GIF都是一个很好的选择,相比于最新的WEBP格式的动画,也有更好的兼容性(毕竟已经出现很多年了)。

关于图片加载我一直用的是Google推荐的Glide,图片加载和缓存都做的很好,同样也支持GIF动画。不过Glide默认就是循环播放Gif,没有开放相关的接口来控制Gif。这就使的我们不能很好地控制Gif的播放,比如控制播放开始时间、播放次数,播放暂停、播放开始、结束事件的监听,虽然用Glide可能做到(网上说可以,但我没找到方法),但操作也会很麻烦。

Read more   2017/11/2 posted in  Android

Android-事件分发机制源码攻略

前言

android事件分发算是自定义View不可缺失的一部分,事件分发是指那一类跟屏幕交互的操作等事件,例如滑动,点击,长按这类。这些事件都是由摁下、移动、抬起等基本事件组成的。那事件分发是指当你点击了屏幕,这个事件是如何从Activity传递到真正处理这个事件的View上的过程。例如,我们在做ListView跟ViewPager嵌套的时候,既能左右滑动,又能上下滑动,这些事件是如何避免彼此间的冲突的。下面我会分三节来介绍这一原理。

首先,这次的源码分析是基于25.0.3版本进行的。

Read more   2017/11/2 posted in  Android

Android-自定义曲线路径动画框架

前言

最近在一个项目中需要一个像QQ打开个人爱好那样的动画效果如下图:

20171112151041618224358.gif
20171112151041618224358.gif

可以看出每个小球都是以顺时针旋转出来的,说明像这样的曲线动画用Android中自带的平移动画是很难实现的。

Read more   2017/11/2 posted in  Android

Android-转场动画深度解析

Android5.0之后新增了很多好看的转场动画,相比于以前的overridePendingTransition()丰富了很多,特别新增了共享元素跳转的方式。本篇文章介绍转场动画框架的基本概念,并着手自己实现转场动画。

Read more   2017/11/1 posted in  Android

Android-手势检测GestureDetector全面分析

前言

  在很多视频播放器中,都存在使用不同的手势来控制进度、亮度\音量和暂停播放等功能。Android提供了一个GestureDetector来帮助我们识别一些基本的触摸手势(还有ScaleGestureDetector可以识别缩放手势),让我们很方便地实现手势控制功能。下面我们就来学习一下GestureDetector的使用和通过源码(Android7.0)来分析一下它的实现,让我们对触摸事件处理的理解更加深入。

Read more   2017/11/1 posted in  Android

Android-玩转PathMeasure

20171109151015906869351.gif
20171109151015906869351.gif

Read more   2017/10/31 posted in  Android

Android-视频播放器开发

android中在实际的视频开发中多用即成的框架,或者自己封装相关的Manager来实现;下面介绍一个简单的android视频开发的过程:

  1. 实现网络和本地视频播放
  2. 点击控制播放,暂停
  3. 支持进度条的拖动,实时跟新进度,时间
  4. 支持横竖屏切换
  5. 在横屏状态下,音量键显示并且可调节
  6. 支持手势触摸,即:上下滑动左半屏,弹出dialog,控制屏幕亮度,并且显示进度条;上下滑动右半屏,弹出dialog,控制声音大小,并且显示进度条;
Read more   2017/10/31 posted in  Android

Android-最适合使用RxJava处理的四种场景

前言

RxJava是非常热门的函数响应式编程库,在Android开发中已经非常流行了,刚开始上手会有点难,但只要理解了它,就再也回不去了;不使用RxJava写异步请求的话,就感觉各种不爽。

本文不准备讲RxJava的基础知识,如果你对RxJava不熟悉,这里有篇不错的教程可以参考《给 Android 开发者的 RxJava 详解》。

Read more   2017/10/31 posted in  Android

Android-高级UI特效之炫酷漂浮动画—一个能让View执行漂浮的库

FloatingView-android能够让View执行漂亮的漂浮动画的库

Read more   2017/10/30 posted in  Android