随笔分类 -  View

摘要:目光所及,皆有Window!Window,顾名思义,窗口,它是应用与用户交互的一个窗口,我们所见到视图,都对应着一个Window。比如屏幕上方的状态栏、下方的导航栏、按音量键调出来音量控制栏、充电时的充电界面、屏幕中间的应用显示区域(Activity)、Dialog、Toast、PopWindow、菜单等,都依附于对应的Window。可以认为Window是View的实际直接管理者,所以理解Window相关的知识,对理解Android的视图机制有很大的帮助。本文将介绍Window相关的基础知识,以及从源码的角度分析WindowManager是如何将View呈现在界面的。 阅读全文
posted @ 2020-08-05 19:51 宋者为王 阅读(2708) 评论(1) 推荐(0) 编辑
摘要:由于手机屏幕尺寸有限,但是又经常需要在屏幕中显示大量的内容,这就使得必须有部分内容显示,部分内容隐藏。这就需要用一个Android中很重要的概念——滑动。滑动,顾名思义就是view从一个地方移动到另外一个地方,我们平时看到的各种很炫的移动效果,都是在基本的滑动基础上加入一些动画技术实现的。在Android中实现滑动的方式有多种,比如通过scrollTo/scrollBy,动画位移,修改位置参数等。本文主要介绍通过scrollTo/scrollBy方式来实现View的滑动,并通过该方法来实现一个自定义PagerView。 阅读全文
posted @ 2019-07-19 15:48 宋者为王 阅读(4580) 评论(10) 推荐(2) 编辑
摘要:在Android事件中,有几个比较基本的概念和知识点需要掌握。比如,表示最小移动阈值的TouchSlop,追踪事件速度的VelocityTracker,用于检测手势的GestureDetector,实现View弹性滑动的Scroller,用户帮助处理View和事件的辅助工具类ViewDragView等。这些都是使用事件、理解事件中需要掌握的知识点。本篇将简单介绍Slop和VelocityTracker的基本知识。 阅读全文
posted @ 2019-07-16 10:45 宋者为王 阅读(3756) 评论(0) 推荐(1) 编辑
摘要:在上一篇文章中,总结了MotionEvent以及多点触控相关的基础理论知识和常用的函数。本节将通过实际案例来进行练习,以及实现一些效果,来理解前面的理论知识。 阅读全文
posted @ 2019-07-09 17:43 宋者为王 阅读(2432) 评论(1) 推荐(1) 编辑
摘要:前面的文章中介绍过一根手指的事件处理问题,一根手指的问题就已经有点复杂了,如果有多根手指同时操作又将如何呢?本系列将介绍多根手指相关的问题,即多点触控,以及MotionEvent的一些基础知识。本系列分为(上)和(下)两部分,(上)部分将主要介绍一些基础和理论知识,(下)部分将通过demo和实例来练习和理解多点触控的知识。 阅读全文
posted @ 2019-07-09 09:05 宋者为王 阅读(1832) 评论(2) 推荐(0) 编辑
摘要:Android的滑动冲突问题,是一个让很多程序员非常头疼的问题。经常很多滑动相关的控件,如ScrollView、ListView等,在单独使用的时候酷炫不已,但将他们组合在一起使用,就失灵了,这些时常让人吃尽苦头。前两篇文章中重点讲了事件分发的理论知识,本文将总结事件的实践问题,总结工作中经常遇到的滑动冲突问题及解决方案。 阅读全文
posted @ 2019-06-24 13:49 宋者为王 阅读(3833) 评论(6) 推荐(2) 编辑
摘要:在上一篇文章,我们通过示例和log来分析了Android的事件分发机制。这些,我们只是看到了现象,如果要进一步了解事件分发机制,这是不够的,我们还需要透过现象看本质,去研究研究源码。本篇将从源码的角度来探索事件的来龙去脉,View、ViewGroup分发及处理事件分发的逻辑,以及解释平时工作中遇到的一些“诡异”现象。 阅读全文
posted @ 2019-06-17 13:51 宋者为王 阅读(2505) 评论(1) 推荐(1) 编辑
摘要:在自定义View中,经常需要处理Android事件分发的问题,尤其在有多个输入设备(如遥控、鼠标、游戏手柄等)时,事件处理问题尤为突出。Android事件分发机制,一直以来都是一个让众多开发者困扰的难点,至少笔者在工作的前几年中,没有特意研究它之前,就经常云里雾里。实际上,该问题的“七寸”就是dispatchTouchEvent(MotionEvent ev)、onInterceptTouchEvent(MotionEvent ev)、onTouchEvent(MotionEvent ev)这三个方法和MotionEvent事件实体,咱们这里索性称它们为“四大恶人”吧。本文将主要通过示例演示的方式来打这个“七寸”吧。 阅读全文
posted @ 2019-06-10 17:06 宋者为王 阅读(2541) 评论(0) 推荐(1) 编辑
摘要:在很多初学者看来,自定义View很难掌握,有很大一部分原因是我们平时看到的自定义View使用中,有多种形式,有的寥寥数笔,有的逻辑很复杂,有的直接继承View或ViewGroup,有的却直接继承系统的原生控件,有的可以直接使用系统定义的属性,而有的却自定义了自己的属性......所以不明白使用规则的开发者,很容易被这只“纸老虎”吓到。本文总结和梳理了实现自定义View的方式,只有三种:组合控件,继承控件,自绘控件。然后就是根据需要来添加自定义的属性。本文将会针对这4个方面进行详细的讲解。 阅读全文
posted @ 2019-06-05 13:52 宋者为王 阅读(22753) 评论(6) 推荐(4) 编辑
摘要:Android对文字的绘制方面提供了很多的API,本文根据某培训课程的课件,进行了整理。该课件对常用的绘制文本基本技巧及基本知识做了比较详细的讲解,很适合作为教程学习。 阅读全文
posted @ 2019-06-03 16:32 宋者为王 阅读(9500) 评论(0) 推荐(2) 编辑
摘要:上一篇讲View的绘制流程中讲到过,最后一步是draw流程,在这个过程中,子view需要重写onDraw方法来画出自己的内容。在自定义View绘制自身内容的时候,系统提供了3个非常重要的类来帮助开发者画各种炫酷的图形:Canvas、Paint、Path。本篇梳理Canvas相关的基础知识点,主要用于应对工作中绘制任务,实用而且常见。 阅读全文
posted @ 2019-06-01 16:23 宋者为王 阅读(4588) 评论(2) 推荐(0) 编辑
摘要:自定义View、多线程、网络,被认为是Android开发者必须牢固掌握的最基础的三大基本功。Android View的绘制流程原理又是学好自定义View的理论基础,所以掌握好View的绘制原理是Android开发进阶中无法绕过的一道坎。而关乎到原理性的东西往往又让很多初学者感到难以下手,所以真正掌握的人并不多。本文采用非常浅显的语言,从顺着Android源码的思路,对View的整个绘制流程进行近乎“地毯式搜索”般的方式,对其中的关键流程和知识点进行查证和分析,以图让初级程序员都能轻松读懂。 阅读全文
posted @ 2019-05-31 14:25 宋者为王 阅读(41142) 评论(2) 推荐(11) 编辑

点击右上角即可分享
微信分享提示