- 博客(19)
- 资源 (1)
- 收藏
- 关注
原创 ViewGroup事件分发源码—ACTION_POINTER_DOWN事件的传递(二)
View事件分发源码(二)—ACTION_POINTER_DOWN事件的传递Android版本: 基于API源码28,Android版本9.0。一 写在前面在读本篇之前,需要先了解:ViewGroup#dispatchTouchEvent()方法源码分析;Android中的多点触控机制; Touch事件分发源码分析—ACTION_POINTER_DOWN事件的传递(一)。二 本篇主题上篇Touch事件分发源码分析—ACTION_POINTER_DOWN事件的传递(一)已经分析了,ACTIO
2020-07-26 11:02:21
641
原创 ViewGroup事件分发源码—ACTION_POINTER_DOWN事件的传递(一)
View事件分发源码—ACTION_POINTER_DOWN事件的传递Android版本: 基于API源码28,Android版本9.0。一 写在前面在读本篇之前,需要先了解ViewGroup#dispatchTouchEvent()方法源码分析和Android中的多点触控机制。二 本篇主题多点触控,想必对于绝大多数Android开发者来说并不陌生,日常开发中或多或少的都会遇到过,比如图片预览中的双指缩放,当然这只是一种简单的场景。实践出真理,最近在处理多点触控事件中发现 :当有第二根手指触碰屏
2020-07-25 10:30:34
810
2
原创 Android完全自定义下划线的TabLayout
一 介绍:导航功能几乎是所有的APP都具备的基础功能之一,Android系统提供了TabLayout+ViewPager的组合来实现该功能。再使用之初,发现该组合真是无敌了,但是。。。总有一些UI设计师觉得原生TabLayout的下划线样式不符合用户的审美,比如说,下划线的宽度要跟文本的宽度一样,下划线的样式要换成图片等等。TabLayout在这些需求面前显得那么无助,程序员被迫搬砖。WeTa...
2020-04-01 11:08:38
1495
6
原创 Java多线程——线程池的基本使用
线程池本篇基于JDK1.8。一 为什么需要线程池?直接创建线程的缺点:每次通过new Thread()创建对象性能不佳。可能会无限制的创建新的线程,造成系统资源匮乏,严重可能导致OOM。缺乏管理性,没有一个统一的东西去管理线程的生命周期。使用线程池的好处:可重用存在的空闲线程,减少线程的多次创建,提升性能。可设置其线程的最大创建数量和核心线程的数量,避免无限制的创建。...
2019-11-09 11:41:22
196
原创 Android Handler消息机制源码全量解析
Handler消息机制源码解析Android版本: 基于API源码26,Android版本8.0。本片文章的目的在于全面的了解Handler。它是如何传递消息的?是如何阻塞和唤醒线程的(仅限于Java层面)?MessageQueue到底是怎么存储和取出Message?延迟消息是怎么被发送的?一 Handler定义:Handler是一套消息传递的机制。设计用来让工作线程跟主线程之间进行消息传...
2019-10-25 07:52:12
321
原创 Android自定义滑动刻度尺
一 基础:自定义View实现跟随手指滚动的刻度尺,实现了类似SeekBar的滑动选中效果。项目地址,欢迎star!UI图:功能:通过设置最小值跟最大值的范围,以及offset值。View将根据这些数据去计算出需要几个小刻度和几个长刻度,和每个长刻度上面显示的数值。指针可以随意的定制。当滑动停止后,刻度尺会根据四舍五入将距离指针最近的长刻度滑动到指针的位置。支持范围越界回弹。支持设...
2019-04-02 15:23:07
1795
2
原创 Android面试之Activity生命周期详解
Activity生命周期详解一 Activity的四种状态:Activity的生命周期中存在四种基本的状态:活动状态(Active/Runing),暂停状态(Paused),停止状态(Stopped),销毁状态(Killed)。每个状态下Activity都会拥有某些能力和失去某些能力。活动状态(Active/Runing)一个新的Activity入栈之后,当处于Activity的栈顶,...
2019-03-22 18:11:10
754
原创 Android屏幕适配前先了解这些
前言:之前很火的屏幕适配方案不知道大家都去尝试过写进项目中没,应该有一部分人在隔岸观火,大概的原因就是目前并没有遇到能把项目重构的适配问题,另一方面就是有的适配方案还没有很成熟的应用,都不想拿自己的项目去测试。就拿那些github开源库上面的适配方案来说,没有几个人去上面提issues。就在最近我去试了一下今日头条的适配方案,然后。。。哎~~接着往下看吧一 ppi和dpi这两个单位是什么?有什...
2018-10-12 15:24:41
8031
25
原创 Java注解解析-搭建自己的注解处理器(CLASS注解使用篇)
写在前面 该文章讲解了如何处理源码注解(CLASS ),是继Java注解解析-基础+运行时注解(RUNTIME)之,使用注解处理器处理CLASS注解的文章。通过完整的Demo例子介绍整个注解处理器的搭建流程以及注意事项,你将知道如何去搭建自己的注解处理器。前提是你知道如何去写自定义注解,不清楚的可以点击我上面的链接哦~ 介绍顾名思义注解处理器就是javac包中专门用来...
2018-09-05 13:59:14
8929
17
原创 Java注解解析-运行时注解详解(RUNTIME)
一 注解的定义注解(Annotation),也叫元数据。一种代码级别的说明。它是JDK1.5及以后版本引入的一个特性,与类、接口、枚举是在同一个层次。它可以声明在包、类、字段、方法、局部变量、方法参数等的前面,用来对这些元素进行说明 。如果要对于元数据的作用进行分类,还没有明确的定义,不过我们可以根据它所起的作用,注解不会改变编译器的编译方式,也不会改变虚拟机指令执行的顺序,它更可以理解为是一...
2018-08-16 20:00:12
12992
20
原创 Android侧滑-RecyclerView轻松实现高效的侧滑菜单
一 前言利用系统类ItemTouchHelper实现简单高效的RecyclerView侧滑菜单!仿qq的侧滑,跟随滑动…简单的侧滑点击删除,覆盖滑动…二 知识准备ItemTouchHelper是Android系统提供的一个帮助类,可以很轻松的用它实现长按拖拽和侧滑删除功能(这里的是侧滑之后直接删除整条Item),下面来看一下使用方法.ItemTouchHe...
2018-06-04 09:35:06
11848
26
原创 Android RecyclerView-使用Itemdecoration实现粘性头部功能,详细到具体步骤.
一 前言该文详细的介绍了RecyclerView.ItemDecoration实现分组粘性头部的功能,让我们自己生产代码,告别代码搬运工的时代.另外文末附有完整Demo的连接.看下效果:二 知识准备RecyclerView.ItemDecoration对于我们最熟悉的功能就是给RecyclerView实现各种各样自定义的分割线了,实现分割线的功能其实和实现粘性头部的功能大同小异
2018-02-01 11:42:24
3765
23
原创 Android 浅谈scrollTo和scrollBy源码
一.写在前面在View的几种移动方法中我相信Scorller+scrollTo或者scrollBy是大家比较接受.我们再使用的时候总是会碰到一些奇怪的问题,可以得出以下几点:scrollTo和scrollBy只是移动自己的内容. 也就是如果ViewGroup设置scrollTo或者scrollBy的话,只有它的子View会有位移效果.如果是TextView设置scrollTo或者scrollBy
2017-11-15 19:54:37
1990
2
原创 Java多线程-带你认识Java内存模型,内存分区,从原理剖析Volatile关键字
写在前面读完本篇文章你将知道:Java的内存模型。Java的内存分区。全局变量、局部变量、对象、实例再内存中的位置。JVM重排序机制。JVM的原子性、可见性、有序性。彻底了解Volatile关键字。一. Java的内存模型Java内存模型即Java Memory Model,简称JMM。JMM定义了Java 虚拟机(JVM)在计算机内存(RAM)中的工作方式。JVM是整个计算机虚拟模型
2017-10-27 14:11:14
2977
原创 Java多线程-通过线程的中断来深入学习interrupt方法,Volatile关键字
一.理解中断.目前我用到线程的情景:第一是处理耗时的操作.第二是在后台循环的为我们去处理一些事情.用到循环去处理事情的时候线程该怎么中断呢?大家都知道当线程的run方法走完或者run方法里面出现异常没有被捕获的时候,线程将终止.Jva在早期的时候曾提供过一个stop的方法用来打断线程,不过这个方法到现在已经被放弃了,不过又提供了一个interrupt方法来打断线程.听起来是不是感觉有希望了,可是结果
2017-10-25 19:42:10
1049
原创 Java多线程-死锁的出现和解决
Java多线程-死锁什么是死锁?死锁是这样一种情形:多个线程同时被阻塞,它们中的一个或者全部都在等待某个资源被释放.由于线程被无限期地阻塞,因此程序不能正常运行.形象的说就是:一个宝藏需要两把钥匙来打开,同时间正好来了两个人,他们一人一把钥匙,但是双方都再等着对方能交出钥匙来打开宝藏,谁都没释放自己的那把钥匙.就这样这俩人一直僵持下去,直到开发人员发现这个局面.导致死锁的根源在于不适当地运用“syn
2017-10-20 15:56:30
3914
原创 Java多线程-完成Android开发中的某些需求
https://juejin.im/post/59e45fd051882578e1405ddc
2017-10-16 17:01:06
393
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人