自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(54)
  • 资源 (5)
  • 收藏
  • 关注

原创 CmProcess 为Android跨进程调用与通信更简洁而生

年后第一发,带来一款更简洁方便的Android进程通信方案。看了网上太多的Binder以及跨进程讲解,最后回到我们自己来进行跨进程通信时发现还是相当繁琐,定义aidl、定义Service、bindService等一系列操作搞得头都大了。CmProcess 可简单轻松解决进程间通信问题,几行代码搞定,任意进程随时注册服务,随时同步获取服务以及支持跨进程的事件总线。介绍CmProcess 更方便...

2019-02-17 20:23:37 549

原创 无需Root,无需反编译,用VirtualUETool查看修改任意App的布局参数

UETool是饿了么推出一款开源库,已经出来一段时间了,用来帮助设计师,程序员,测试人员来在APP上修改View的各项参数。使用起来也很方便,但它只能在自己项目里引入依赖来使用,也就是说用它只能查看自己APP的布局位置信息。如果可以用它来查看手机上安装的任意APP,那是不是很酷呢?我们今天的目标就是:扩展UETool让它成为一个SuperUETool。先说下我们超级工具**VirtualUEToo...

2019-01-30 10:40:31 2054 4

原创 聊聊滑块验证码的识别

很长一段时间没写文章了,今天来一篇,聊聊滑块验证码。之前一段时间在研究下滑块验证码相关的东西,拿腾讯的验证码来玩,使用Selenium来模拟滑动,这里也就先不介绍Selenium 的基本用法来,主要来聊聊怎么实现滑块验证码的识别问题。滑块验证码可以说是目前使用最多,体验相对比较好的验证方式来,在反爬虫上面也确实有比较好的效果,但爬虫和反爬虫,本身就是一对冤家,相互促进项目影响。废话不多说,直接上...

2018-09-27 11:06:40 3395

原创 深入理解ThreadLocal

一、ThreadLocal是什么先看JDK源码中对ThreadLocal的解释: This class provides thread-local variables. These variables differ from their normal counterparts in that each thread that accesses one (via its get or set me

2017-10-15 12:09:38 636

原创 自己动手撸一个Handler

一、关于HandlerHandler对于我们Android开发者来说应该是再熟悉不过了,这也是在Android中最重要的消息机制,特别是在面试笔试时,Handler机制也是最常问到的话题。今天我们就来动手撸一个自己写的Handler,用java层代码方式来实现,进一步来了解Handler在线程通信过程中的作用。二、问题Handler机制也可以理解为线程间的消息机制,如果我们自己来设计Handler实

2017-07-23 16:29:24 2207

原创 深入聊聊Android事件分发机制

在Android开发的过程中,自定义控件一直是我们绕不开的话题。而在这个话题中事件分发机制也是其中的重点和疑点,特别是当我们处理控件嵌套滑动事件时,正确的处理各个控件间事件分发拦截状态,可以实现更炫酷的控件动画效果。一、事件分发机制介绍关于Android事件分发,我们主要分ViewGroup和View两个事件处理部分进行介绍,主要研究在处理事件过程中关注最多的三个方法dispatchTouchEv

2017-02-09 23:28:41 3068 7

原创 聊聊对Android视图滚动状态的监听

在官方support.v4包里,提供给我们一个兼容类ViewCompat。ViewCompat里面针对几个版本有不同的实现,根据不同版本进行判断, 但是要注意的是,ViewCompat仅仅让你调用不崩溃,并不保证你调用的结果在不同版本的机器上一致。 ViewCompat代码组织的很优雅,有兴趣可以看它的源码。这几天在看代码时注意到ViewCompat的canScrollVertically和can

2017-01-22 08:44:17 2470

原创 更快实现Android多级树形选择列表

快速实现Android多级树形列表,这个库是在鸿洋多级树形列表demo中修改而来。 解决的问题: 1. 支持ID为int类型和String类型。 2. 支持多级复选框选中,使用只需一行代码。 3. 支持动态更新数据并保持原有展开/关闭状态。 4. 支持ListView、RecyclerView。 项目地址:https://github.com/zhangk

2017-01-15 15:51:11 4610 8

原创 两行代码搞定Android视图扩散切换效果

用最简单的方式来实现Android视图扩散切换效果。一、概述这两天时间动手撸了个视图扩散切换效果的控制器,API兼容至Android4.0,更方便我们在视图切换过程中有炫酷的过渡效果。本来是想实现两个View之间的过渡动画,实现的过程中想到之前写的Activity切换动画,就试着加上了对Activity切换的动画支持。先来看看效果吧,代码实现只需一行,感觉还不错~二、实现思路简单阐述关于过渡动画的

2017-01-09 08:32:22 5262 3

原创 Android碎裂的粒子效果

最近看到一段时间都没怎么更新文章了,一直在学习iOS相关内容。偶然间看到一个碎裂的粒子效果,觉得很有意思,就查了查,参考下网上的思路自己撸了个轮子。好了,说了这么多,先看看效果吧~依惯例,先说下行文思路吧,首先我们先简单分析下效果,拆分关注点,粒子效果是怎么产生的?我的解决方案就是先获取当前要碎裂的view的缓存视图,然后根据图片获取各个坐标点的颜色值,在整个DecorView盖上一层视图,这个视图

2016-12-25 18:53:00 4826 2

原创 动手试试Android Studio插件开发

由于业务关系,经常需要写一些表单页面,基本也就是简单的增删改查然后上传,做过几个页面之后就有点想偷懒了,这么低水平重复性的体力劳动,能不能用什么办法自动生成呢,查阅相关资料,发现android studio插件正好可以满足需求,在Github上搜了一下,找到BorePlugin这个帮助自动生成布局代码的插件挺不错的,在此基础上修改为符合自己需求的插件,整体效果还不错。 发现了android stu

2016-11-20 22:30:03 4311 3

原创 [Android]聊聊ActionMode

最近一段时间都没有更新文章,趁工作之余,更新一篇。今天介绍一个很常见效果也最容易被忽略的弹出框:ActionMode。主要是ActionMode使用和自己使用过程中遇到的一些问题,相对还是比较简单的。1、ActionMode的基本使用 2、使用ActionMode遇到的一些问题1、ActionMode的基本使用 主要分两步: 1、实现ActionMode.Callb

2016-11-02 12:34:16 2055 1

原创 实现仿简书选取内容生成分享图片效果

前几天脑子里忽然闪过简书的图片分享效果,感觉很简洁也很漂亮,想着能不能用自己方式实现一下呢,于是今天就有了这篇文章。好了,先看下效果图吧:项目地址: https://github.com/zhangke3016/GeneratePicture欢迎star、issues~实现这个效果,首先要弄明白几个问题: 一、如何获取选取的网页内容 二、获取的网页内容如何加载显示一、如何获取选取的网页

2016-09-23 19:48:12 3008 1

原创 夜间模式切换的实现库,只需三行代码实现流畅切换

Implementation of night mode for Android. 用最简单的方式实现夜间模式,支持ListView、RecyclerView。项目GitHub地址: https://github.com/zhangke3016/ChangeModePreviewUsage xml android:background="?attr/zzbackground"

2016-09-12 19:38:02 2171

原创 自定义控件辅助神器ViewDragHelper

ViewDragHelper作为官方推出的手势滑动辅助工具,极大的简化了我们对手势滑动的处理逻辑,v4包中的SlidingPaneLayout和DrawerLayout内部都有ViewDragHelper的身影,这里对这个强大的辅助工具类使用以及相关方法做个系统性的总结。 全文思路: 一、用ViewDragHelper实现一个简单效果,并对ViewDragHelper使用的常见思路进行总结

2016-08-28 20:27:39 5225 4

原创 深入理解CoordinatorLayout.Behavior

要研究的几个问题 一、Behavior是什么?为什么要用Behavior? 二、怎么使用Behavior? 三、从源码角度看为什么要这么使用Behavior?一、Behavior是什么?为什么要用Behavior?CoordinatorLayout是android support design推出的新布局,主要用于作为视图根布局以及协调子控件的行为,而Behavior就是用于直接子

2016-08-21 17:13:29 7175 2

原创 从无到有打造一个炫酷的进度条效果

今天这篇文章要介绍的是一个酷炫的进度条的设计和实现,在进度的文字内容、颜色以及切换的图片等都可以自由设置。我们先看下效果 (创意受Dribbble的启发):整体效果还是不错的吧,哈哈,我自己还是比较满意的~项目地址已上传至 github ,欢迎star、fork。那么下面我们就开始从无到有实现一下这个酷炫的进度效果吧。 项目地址:SpecialProgressBar。实现思路仔细观察下这个效果,

2016-08-12 22:00:43 2841

原创 利用Camera和Matrix实现有趣的卡片效果

这篇文章主要讲解一个翻转切换内容的卡片效果,主要利用Camera和Matrix来实现,主要是为了加深对Camera和Matrix的理解,如果对Camera和Matrix不清楚地童鞋可以看我的上篇文章:Android中利用Camera与Matrix实现3D效果详解 好了,我们先看下效果吧 (效果的灵感来自:Dribbble):项目github地址 欢迎star、fork。实现思路: 一、主要应

2016-08-07 17:04:00 5327 3

原创 Android中利用Camera与Matrix实现3D效果详解

本文行文目录: 一、Camera与Matrix初步认识 二、Camera与Matrix旋转效果拆分介绍 三、Camera与Matrix实现立体3D切换效果【csdn地址:http://blog.csdn.net/zhangke3016/article/details/52093776】一、Camera与Matrix初步认识androi

2016-08-02 14:15:40 17295 9

原创 android开源库发布到jcenter图文详解与填坑

相信很多人都用过开源项目,特别是android studio普及以后,使用开源库更方便简单。而如何上传开源库到jcenter供大家方便使用,虽然网上也有教程,但还是遇坑了,最后总结一下,希望可以帮助大家。【csdn地址: http://blog.csdn.net/zhangke3016/article/details/52075159】 【本文简书地址: http://www.jianshu

2016-07-30 21:22:32 3457 2

原创 从一个简洁的进度刻度绘制中了解自定义View的思路流程

先看效果(原谅我的渣像素),进度的刻度、宽度、颜色可以随意设定:实现起来并不难,通过本文,我们可以学到: 1、自定义属性的使用。 2、shader的使用 3、自定义View中对onmeasure的处理 4、增深对PathMeasure工具类的了解 5、最主要的是对自定义View有个比较清晰的思路认识一、原理介绍做这样一个进度效果,我们可以拆分如下步骤来实现:

2016-07-28 10:13:30 10972 2

原创 字母雨的实现

有段时间没写博文了,前段时间比较忙,这几天闲下来,想着写点东西,脑袋一下就闪过以前学习Android的时候见到的别人实现的黑客帝国的字母雨效果,当时对于小菜鸟的自己,那叫一个膜拜啊,时隔几年,自己实现一下,算是对以前的自己一个交代吧。先看效果: 一、实现原理在实现过程中,主要考虑整个界面由若干个字母组成的子母线条组成,这样的话把固定数量的字母封装成一个字母线条,而每个字母又封装成一个对象

2016-07-22 14:31:59 8099 5

原创 android开发要避免的那些坑

SparseArray 目前有很多地方从性能优化方说使用SparseArray来替换hashMap,来节省内存,提高性能。Linkify.addLinks() 这个类可以更方便的为文本添加超链接。ThumbnailUtils 这个类主要是用来处理缩略图相关的,有过这方面需求的,应该是用过这个类的。Bitmap.extractAlpha();返回一个新的Bitmap,capture原始图片的al

2016-07-05 15:08:00 4499 1

原创 Android support library支持包常用控件介绍(二)

谷歌官方推出Material Design 设计理念已经有段时间了,为支持更方便的实现 Material Design设计效果,官方给出了Android support design library 支持库,让开发者更容易的实现材料设计的效果。顺便推荐官方的一个图标库:Material Icons 控件名称 NavigationView FloatingActionButton Te

2016-06-27 22:32:19 5329 2

原创 Android support library支持包常用控件介绍(一)

谷歌官方推出Material Design 设计理念已经有段时间了,为支持更方便的实现Material Design设计效果,官方给出了Android support design library 支持库,让开发者更容易的实现材料设计的效果。顺便推荐官方的一个图标库:Material Icons 控件名称 NavigationView FloatingActionButton Text

2016-06-25 00:27:27 10796 5

原创 抢红包插件实现原理浅析

抢红包,先看效果图~ 实现自动抢红包,解决问题有两点: 一:如何实时监听发红包的事件 二:如何在红包到来的时候自动进入页面并自动点击红包一、如何获取红包到来的事件为了获取红包到来状态栏的变化,我们要用到一个类:Accessibility 许多Android使用者因为各种情况导致他们要以不同的方式与手机交互。 这包括了有些用户由于视力上,身体上,年

2016-06-20 10:19:21 11487 7

原创 Android音视频(二)预览摄像头画面

利用OpenGL生成纹理并绑定到SurfaceTexture上,然后把Camera的预览数据设置到SurfaceTexture中,OpenGL拿到摄像头数据并显示出来。1. 顶点与片元着色器片元着色器:#extension GL_OES_EGL_image_external:requireprecision mediump float;varying vec2 a_position;...

2019-05-17 09:53:19 407

原创 Android音视频(一) OpenGL ES2.0 绘制图片纹理

OpenGL ES是OpenGL的一个子集,它针对移动端或嵌入式系统做了部分精简,而Android系统中集成了OpenGL ES,方便我们通过其接口充分使用GPU的计算和渲染能力。OpenGL ES2.0是基于可编程管线设计。相对OpenGL ES 1.x,OpenGL ES 2.0进行了大变革,更具灵活性,功能也更强大,并且渲染效率更高,效果更好。目前Android对OpenGL ES的支持如...

2019-05-13 18:54:06 598

原创 将cglib动态代理思想带入Android开发

动态代理在Android实际开发中用的并不是很多,但在设计框架的时候用的就比较多了,最近在看J2EE一些东西,像Spring,Hibernate等都有通过动态代理来实现方法增强、方法拦截等需要,通过代理的方式优雅的实现AOP编程。我们今天来看看这个代理究竟是什么样子,在Android开发中如何使用它,以及将cglib动态代理思想在Android中看看如何实现。项目地址:MethodIntercept

2017-05-08 23:34:35 4306

原创 深入理解Android中Handler机制

对于一位Android开发者来说,对Handler、Looper、Message三个乖宝贝应该再熟悉不过了,这里我们先简单介绍下这三者的关系,之后再用Looper.loop方法做点有意思的事情,加深对运行循环的理解。一、源码理解Handler、Looper、Message通常我们在使用Handler时会在主线程中new出一个Handler来接收消息,我们来看下Handler源码:/** *

2017-03-08 08:44:54 995

原创 iOS学习笔记--Quartz2D

Quartz 2D是一个二维绘图引擎,同时支持iOS和Mac系统。 Quartz 2D能完成的工作: 1. 绘制图形 : 线条\三角形\矩形\圆\弧等 2. 绘制文字 3. 绘制\生成图片(图像) 4. 读取\生成PDF 5. 截图\裁剪图片 6. 自定义UI控件等为了便于搭建美观的UI界面,iOS提供了UIKit框架,里面有各种各样的UI控件,利用U

2016-12-11 19:45:09 571

原创 iOS学习笔记--数据存储

iOS应用数据存储的常用方式 XML属性列表(plist)归档 Preference(偏好设置) NSKeyedArchiver归档(NSCoding) SQLite3 Core Data 1. XML属性列表(plist)归档每个iOS应用都有自己的应用沙盒(应用沙盒就是文件系统目录),与其他文件系统隔离。应用必须待在自己的沙盒里,其他应用不能访问该沙盒。应用沙盒

2016-12-11 19:41:56 609

原创 iOS学习笔记--触摸事件

最近空闲时间在学习iOS相关知识,几周没有更新文章了,今天总结下这些天的学习内容,也整理下iOS的学习笔记,以便以后查阅翻看~ iOS中的事件可以分为3大类型: 触摸事件 加速计事件 远程控制事件响应者对象在iOS中不是任何对象都能处理事件,只有继承了UIResponder的对象才能接收并处理事件。我们称之为“响应者对象”。 UIApplication、UIViewContro

2016-12-11 19:25:24 605

原创 解决WebView加载本地文件乱码

???????????????????????????????????????????????WebView??????????????????????????webView ??????loadUrl(),loadData(),loadDataWithBaseURL()?????????????loadUrl(),?????????? ???setDefaultTextEncodingName

2016-07-14 13:29:54 10412

转载 Android 中与 so 有关的一个大坑

Android 应用开发中不可避免的会引入第三方的代码。如果是开源项目风险相对可控,如果引入商用的 SDK 那就要谨慎了,难免会有这样或那样的问题。比如我们今天要说的这一个。对集成过第三方 SDK 的同学,上图中的目录结构应该不陌生。正常情况下我们只需要将不同版本的 so 文件分别放置。但如果我们要集成的这个第三方 SDK 偏偏没有 arm-v7a 的版本呢?是删除 armeabi-v7a 目录只保

2016-07-04 16:51:33 2621 3

原创 Android开发常用工具总结

目录: 什么是AIDL以及如何使用 获取总内存及可用内存 dp、px转换 程序的安装与卸载 根据URI获取真实路径 关闭开启网络 还原短信 横竖屏切换 获取mac地址 获取SD卡状态 获取状态栏和标题栏的高度 获取各种窗体高度 获取内外置存储卡路径 捕获Application全局异常

2016-06-15 11:28:01 7268 2

原创 实现类似天猫列表消息自动垂直滚动效果

一、先看效果 前段时间在交流群里看到有小伙伴在问一个消息滚动列表怎么做,正好最近在学校准备毕业答辩,公司请了两周假,忙里偷闲把这个效果实现了,整体感觉还是不错的,代码量也比较少,练练手的同时也给小伙伴们分享一下。先上图:二、实现原理就这个效果第一眼看到的时候有点想用自定View来写,感觉有点像歌词翻动的效果,不过思考最后还是没有用这个方案,主要是实现起来有点麻烦,而且这个效果用自定义ViewG

2016-05-31 22:00:26 6421 3

原创 WindowManager添加悬浮窗

WindowManager添加悬浮窗 WindowManager是外界访问Window的入口,Window的具体实现位于WindowManagerService中,并且WindowManager和WindowManagerService交互是一个IPC过程。Window是View的直接管理者。 通过WindowManager添加一个Window:final Button mButton

2016-05-25 00:32:52 1952

原创 自定义View实现雨点洒落效果

自定义View实现雨点洒落效果 最近事情不多,想着写点东西,又不知道写什么好,实现个小效果,娱乐一下,顺带自己也再熟练下自定义view的绘制的相关知识,不说废话,先上图:一、前期分析很明显,上面场景是又一个居中的TextView以及一个个小红点和散开的圆圈构成。在点击上面文本框的时候文本框出现抖动并产生一个小红点,下红点沿预定路径下落,在下落到指定高度时显示散开的波浪效果,同时伴有透明度的变化

2016-01-15 16:56:22 3159 2

原创 OC里面的点语法与java中点调用的区别

最近学习OC,看到OC里面的点语法,感觉挺有意思,写下来跟大家分享一下,前面总结一下:OC的点语法本质就是getter和setter方法的调用,和java的点调用成员变量有本质区别。 import <Foundation/Foundation.h> @interface Person:NSObject { int _age; } - (void)

2016-01-13 17:34:07 1291

事件分发机制学习Demo

事件分发机制学习Demo,blog : http://blog.csdn.net/zhangke3016/article/details/54959569

2017-02-11

自动生成findviewbyid插件演示demo

自动生成findviewbyid插件演示demo

2016-11-19

Rxjava1.1.9 jar和sources源码

Rxjava1.1.9 jar和sources源码,测试可用

2016-08-26

获取文件编码格式与文件转码

获取文件编码格式与文件转码,提供几个工具方法

2016-07-14

android-support-design.jar

android-support-design

2016-02-17

空空如也

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

TA关注的人

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