事件总线匡救啊,降低了代码的耦合性。
首页 | 归档 | 分类 | 标签 | 关于 |
|
事件总线匡救啊,降低了代码的耦合性。
此篇文章只是用于记录使用Glide时要注意的点和一些使用技巧,如需查看基本使用,
请查阅官方文档。也可以看看Glide原理分析。
1 | Glide.with(this) |
Window是一个抽象的概念,每一个Window都对应着一个View和一个ViewRootImpl,Window和View通过ViewRootImpl来建立联系,因此Window并不是实际存在的,
它是以View的形式存在。
Android系统中Window有三种类型,分别是应用Window、子Window和系统Window。应用类Window对应着一个Activity。子Window不能单独存在,它需要附属在特定的父Window之中,
比如常见的一些Dialog就是一个子Window。系统Window是需要声明权限在能创建的Window,比如Toast和系统状态栏这些都是系统Window。
Window是分层的,每个Window都有对应的z-ordered,层级大的会覆盖在层级小的Window的上面。在三类Window中,
应用Window的层级范围是199,子Window的层级范围是10001999,系统Window的层级范围是2000~2999,这些层级范围对应着WindowManager.LayoutParams的type参数。
如果想要Window位于所有Window的最顶层,那么采用较大的层级即可。很显然系统Window的层级是最大的,而且系统层级有很多值,一般我们可以选用TYPE_SYSTEM_OVERLAY
或者TYPE_SYSTEM_ERROR,如果采用TYPE_SYSTEM_ERROR,只需要为type参数指定这个层级即可:mLayoutParams.type = LayoutParams.TYPE_SYSTEM_ERROR;
同时声明权限:
如果不在AndroidManifest中使用相应的权限,那么创建Window的时候就会报错,
WindowManager实现了ViewManager接口,ViewManager接口提供以下三个方法: