一、View基础知识 1.1 View的位置参数 1.2 TouchSlop TouchSlop是系统所能识别出被认为是滑动的最小距离,换句话说,当手指在屏幕上滑动时,如果两...
一、关键词Behavior 先来介绍一下Behavior,我们在开发过程中可能会遇到这样一个小需求,就是在Button点击滑动的过程中,还额外的需要一个TextView一起跟...
问题一:如何让系统的控件(TextView)识别自定义属性? 思路:先看源码怎么去加载xml中定义的自带的属性和View的,入口是PhoneWindow的setContent...
一、源码解析事件纷发流程: 步骤一、方法入口:Activity#dispatchTouchEvent() 步骤二、接下来是调用到ViewGroup#dispatchTouch...
一、屏幕适配概念 1.什么是屏幕尺寸、屏幕分辨率、屏幕像素密度? 屏幕尺寸:指屏幕的对角线的长度,单位:英寸,1英寸=2.54厘米;屏幕分辨率:指横向和纵向上的像素点数,单位...
前言上一篇再讲Draw源码时,会传入一个Canvas对象,那么这篇文章我们要来分析Draw和Canvas还有Paint到底有何联系。 1.Canvas和Paint的关系 其实...
前言从前面的几篇文章我们能够知道UI的测量和布局摆放,那么这次我们来关注下UI是怎么具体画出来的,首先要了解的是具体绘制的流程以及Canvas和Paint在这中间所扮演的角色...
View布局摆放 在performTraversals的测量performMeasure被调用之后,我们继续往后会看到performLayout的调用: 代码中的host就是...
前言上一次我们讲到了最基本的android运行流程和绘制流程的调用顺序,我们最终得到一个结论是activity的生命周期是由系统服务所触发,由系统服务所发起handle调用到...
本文的思路:Android程序启动-->Activity加载并完成生命周期-->setContentView-->图形绘制。 疑惑: 1.Android程序是如何启动,Act...
一、ModelLoader Glide通过ModelLoader完成图片的加载过程封装。 使用Glide图片可能存在于文件、网络等地方。其中的Model则代表了加载来源模型:...
这一篇是在Glide开发之旅1的文章上面的扩展,这里讲到了二级缓存(内存+磁盘)再结合复用池的理念去写的一款简单易懂的demo。 一、内存缓存 代码中通过定义一个LruCac...