android进阶
zhangke3016
喜欢IT,不断进步。
展开
-
自定义View实现雨点洒落效果
自定义View实现雨点洒落效果 最近事情不多,想着写点东西,又不知道写什么好,实现个小效果,娱乐一下,顺带自己也再熟练下自定义view的绘制的相关知识,不说废话,先上图:一、前期分析很明显,上面场景是又一个居中的TextView以及一个个小红点和散开的圆圈构成。在点击上面文本框的时候文本框出现抖动并产生一个小红点,下红点沿预定路径下落,在下落到指定高度时显示散开的波浪效果,同时伴有透明度的变化原创 2016-01-15 16:56:22 · 3190 阅读 · 2 评论 -
动手试试Android Studio插件开发
由于业务关系,经常需要写一些表单页面,基本也就是简单的增删改查然后上传,做过几个页面之后就有点想偷懒了,这么低水平重复性的体力劳动,能不能用什么办法自动生成呢,查阅相关资料,发现android studio插件正好可以满足需求,在Github上搜了一下,找到BorePlugin这个帮助自动生成布局代码的插件挺不错的,在此基础上修改为符合自己需求的插件,整体效果还不错。 发现了android stu原创 2016-11-20 22:30:03 · 4347 阅读 · 3 评论 -
Android碎裂的粒子效果
最近看到一段时间都没怎么更新文章了,一直在学习iOS相关内容。偶然间看到一个碎裂的粒子效果,觉得很有意思,就查了查,参考下网上的思路自己撸了个轮子。好了,说了这么多,先看看效果吧~依惯例,先说下行文思路吧,首先我们先简单分析下效果,拆分关注点,粒子效果是怎么产生的?我的解决方案就是先获取当前要碎裂的view的缓存视图,然后根据图片获取各个坐标点的颜色值,在整个DecorView盖上一层视图,这个视图原创 2016-12-25 18:53:00 · 4874 阅读 · 2 评论 -
两行代码搞定Android视图扩散切换效果
用最简单的方式来实现Android视图扩散切换效果。一、概述这两天时间动手撸了个视图扩散切换效果的控制器,API兼容至Android4.0,更方便我们在视图切换过程中有炫酷的过渡效果。本来是想实现两个View之间的过渡动画,实现的过程中想到之前写的Activity切换动画,就试着加上了对Activity切换的动画支持。先来看看效果吧,代码实现只需一行,感觉还不错~二、实现思路简单阐述关于过渡动画的原创 2017-01-09 08:32:22 · 5314 阅读 · 3 评论 -
更快实现Android多级树形选择列表
快速实现Android多级树形列表,这个库是在鸿洋多级树形列表demo中修改而来。 解决的问题: 1. 支持ID为int类型和String类型。 2. 支持多级复选框选中,使用只需一行代码。 3. 支持动态更新数据并保持原有展开/关闭状态。 4. 支持ListView、RecyclerView。 项目地址:https://github.com/zhangk原创 2017-01-15 15:51:11 · 4697 阅读 · 8 评论 -
深入聊聊Android事件分发机制
在Android开发的过程中,自定义控件一直是我们绕不开的话题。而在这个话题中事件分发机制也是其中的重点和疑点,特别是当我们处理控件嵌套滑动事件时,正确的处理各个控件间事件分发拦截状态,可以实现更炫酷的控件动画效果。一、事件分发机制介绍关于Android事件分发,我们主要分ViewGroup和View两个事件处理部分进行介绍,主要研究在处理事件过程中关注最多的三个方法dispatchTouchEv原创 2017-02-09 23:28:41 · 3140 阅读 · 7 评论 -
聊聊对Android视图滚动状态的监听
在官方support.v4包里,提供给我们一个兼容类ViewCompat。ViewCompat里面针对几个版本有不同的实现,根据不同版本进行判断, 但是要注意的是,ViewCompat仅仅让你调用不崩溃,并不保证你调用的结果在不同版本的机器上一致。 ViewCompat代码组织的很优雅,有兴趣可以看它的源码。这几天在看代码时注意到ViewCompat的canScrollVertically和can原创 2017-01-22 08:44:17 · 2518 阅读 · 0 评论 -
深入理解Android中Handler机制
对于一位Android开发者来说,对Handler、Looper、Message三个乖宝贝应该再熟悉不过了,这里我们先简单介绍下这三者的关系,之后再用Looper.loop方法做点有意思的事情,加深对运行循环的理解。一、源码理解Handler、Looper、Message通常我们在使用Handler时会在主线程中new出一个Handler来接收消息,我们来看下Handler源码:/** *原创 2017-03-08 08:44:54 · 1013 阅读 · 0 评论 -
自己动手撸一个Handler
一、关于HandlerHandler对于我们Android开发者来说应该是再熟悉不过了,这也是在Android中最重要的消息机制,特别是在面试笔试时,Handler机制也是最常问到的话题。今天我们就来动手撸一个自己写的Handler,用java层代码方式来实现,进一步来了解Handler在线程通信过程中的作用。二、问题Handler机制也可以理解为线程间的消息机制,如果我们自己来设计Handler实原创 2017-07-23 16:29:24 · 2311 阅读 · 0 评论 -
深入理解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 · 665 阅读 · 0 评论 -
实现仿简书选取内容生成分享图片效果
前几天脑子里忽然闪过简书的图片分享效果,感觉很简洁也很漂亮,想着能不能用自己方式实现一下呢,于是今天就有了这篇文章。好了,先看下效果图吧:项目地址: https://github.com/zhangke3016/GeneratePicture欢迎star、issues~实现这个效果,首先要弄明白几个问题: 一、如何获取选取的网页内容 二、获取的网页内容如何加载显示一、如何获取选取的网页原创 2016-09-23 19:48:12 · 3018 阅读 · 1 评论 -
从无到有打造一个炫酷的进度条效果
今天这篇文章要介绍的是一个酷炫的进度条的设计和实现,在进度的文字内容、颜色以及切换的图片等都可以自由设置。我们先看下效果 (创意受Dribbble的启发):整体效果还是不错的吧,哈哈,我自己还是比较满意的~项目地址已上传至 github ,欢迎star、fork。那么下面我们就开始从无到有实现一下这个酷炫的进度效果吧。 项目地址:SpecialProgressBar。实现思路仔细观察下这个效果,原创 2016-08-12 22:00:43 · 2868 阅读 · 0 评论 -
Android中使用Handler造成内存泄露的分析和解决
什么是内存泄露?Java使用有向图机制,通过GC自动检查内存中的对象(什么时候检查由虚拟机决定),如果GC发现一个或一组对象为不可到达状态,则将该对象从内存中回收。也就是说,一个对象不被任何引用所指向,则该对象会在被GC发现的时候被回收;另外,如果一组对象中只包含互相的引用,而没有来自它们外部的引用(例如有两个对象A和B互相持有引用,但没有任何外部对象持有指向A或B的引用),这仍然属于不可到达,同样转载 2016-01-05 13:30:40 · 604 阅读 · 0 评论 -
ScrollView和ListView嵌套发生错误的问题
ScrollView和ListView嵌套发生错误的问题 在工作中经常遇到listview顶部或者底部添加多种类的布局,通常尝试用ScrollView添加listView实现效果的做法会发现listview显示不全的情况,这是由于两者嵌套导致了listview没有测量自己的高度,这时需要自定义listview,显式测量listview的高度。public class NoScrollListV原创 2015-12-25 14:31:07 · 951 阅读 · 0 评论 -
实现类似天猫列表消息自动垂直滚动效果
一、先看效果 前段时间在交流群里看到有小伙伴在问一个消息滚动列表怎么做,正好最近在学校准备毕业答辩,公司请了两周假,忙里偷闲把这个效果实现了,整体感觉还是不错的,代码量也比较少,练练手的同时也给小伙伴们分享一下。先上图:二、实现原理就这个效果第一眼看到的时候有点想用自定View来写,感觉有点像歌词翻动的效果,不过思考最后还是没有用这个方案,主要是实现起来有点麻烦,而且这个效果用自定义ViewG原创 2016-05-31 22:00:26 · 6451 阅读 · 3 评论 -
从一个简洁的进度刻度绘制中了解自定义View的思路流程
先看效果(原谅我的渣像素),进度的刻度、宽度、颜色可以随意设定:实现起来并不难,通过本文,我们可以学到: 1、自定义属性的使用。 2、shader的使用 3、自定义View中对onmeasure的处理 4、增深对PathMeasure工具类的了解 5、最主要的是对自定义View有个比较清晰的思路认识一、原理介绍做这样一个进度效果,我们可以拆分如下步骤来实现:原创 2016-07-28 10:13:30 · 11026 阅读 · 2 评论 -
android开源库发布到jcenter图文详解与填坑
相信很多人都用过开源项目,特别是android studio普及以后,使用开源库更方便简单。而如何上传开源库到jcenter供大家方便使用,虽然网上也有教程,但还是遇坑了,最后总结一下,希望可以帮助大家。【csdn地址: http://blog.csdn.net/zhangke3016/article/details/52075159】 【本文简书地址: http://www.jianshu原创 2016-07-30 21:22:32 · 3500 阅读 · 2 评论 -
自定义控件辅助神器ViewDragHelper
ViewDragHelper作为官方推出的手势滑动辅助工具,极大的简化了我们对手势滑动的处理逻辑,v4包中的SlidingPaneLayout和DrawerLayout内部都有ViewDragHelper的身影,这里对这个强大的辅助工具类使用以及相关方法做个系统性的总结。 全文思路: 一、用ViewDragHelper实现一个简单效果,并对ViewDragHelper使用的常见思路进行总结原创 2016-08-28 20:27:39 · 5244 阅读 · 4 评论 -
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 · 17479 阅读 · 9 评论 -
利用Camera和Matrix实现有趣的卡片效果
这篇文章主要讲解一个翻转切换内容的卡片效果,主要利用Camera和Matrix来实现,主要是为了加深对Camera和Matrix的理解,如果对Camera和Matrix不清楚地童鞋可以看我的上篇文章:Android中利用Camera与Matrix实现3D效果详解 好了,我们先看下效果吧 (效果的灵感来自:Dribbble):项目github地址 欢迎star、fork。实现思路: 一、主要应原创 2016-08-07 17:04:00 · 5344 阅读 · 3 评论 -
深入理解CoordinatorLayout.Behavior
要研究的几个问题 一、Behavior是什么?为什么要用Behavior? 二、怎么使用Behavior? 三、从源码角度看为什么要这么使用Behavior?一、Behavior是什么?为什么要用Behavior?CoordinatorLayout是android support design推出的新布局,主要用于作为视图根布局以及协调子控件的行为,而Behavior就是用于直接子原创 2016-08-21 17:13:29 · 7197 阅读 · 2 评论 -
夜间模式切换的实现库,只需三行代码实现流畅切换
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 · 2194 阅读 · 0 评论 -
CmProcess 为Android跨进程调用与通信更简洁而生
年后第一发,带来一款更简洁方便的Android进程通信方案。看了网上太多的Binder以及跨进程讲解,最后回到我们自己来进行跨进程通信时发现还是相当繁琐,定义aidl、定义Service、bindService等一系列操作搞得头都大了。CmProcess 可简单轻松解决进程间通信问题,几行代码搞定,任意进程随时注册服务,随时同步获取服务以及支持跨进程的事件总线。介绍CmProcess 更方便...原创 2019-02-17 20:23:37 · 599 阅读 · 0 评论