From 351d71cbf4b4a6b07a5a2a2b255f0d4da3522409 Mon Sep 17 00:00:00 2001
From: binIoter 工作原理
* 首先它需要一个目标View或者它的id,我们通过findViewById来得到这个View,计算它在屏幕上的区域targetRect,通过这个区域,开始绘制一个覆盖整个Activity的遮罩,可以定义遮罩的颜色和透明度,然而目标View被绘制成透明从而实现高亮的效果。接下来是在相对于这个targetRect的区域绘制一些图片或者文字。我们把这样一张图片或者文字抽象成一个Component接口,设置文字或者图片,所有的图片文字都是相对于targetRect来定义的。可以设定额外的x,y偏移量,可以对遮罩系统设置可见状态的发生变化时的监听回调,可以对遮罩系统设置开始和结束时的动画效,另外,我们可以不对整个Activity覆盖遮罩,而是对某一个View覆盖遮罩。
7=U{$XP;FH8i{}tYa+c2Zor7zTF8j
zvyG+4`Vgv=Gl}qs$)ah8scU~_xJR4z724PQ8mLrD@aN;qE$T#~8;e*5;U&1l(Nfl!
zBRwnIFxBN+sM*;-H;cnA$Jnzv%*w&RL6gVplR-DMR&d(OXNBL&W0pp5mwa{Cb+4h%
zT@u^R%on<|^BIqr@GT9EJj1zmA-#>fqLNo^)^K$Ce4j0*HHg%Fwzq{&iXbate`8rV
zRNS?%R-n#2IDGGYyr4{%ee0h>K}FpdUGSJDj_Lq{GFlgjonlfs7{kh@P|4b`Hok#}
zu9sf7TY^his %Di`KpQYoOJPqeu1rK5k;>?FER
zcifO&u{cy@=Hfge xj0H>1Hx1ZldH^
z4J$u{vsyPJEsghRxvg%J9O$(4CP0Fgr12%Zd}S_LrU7@so|A3FW^) d%A(1+)I<#3{ Nfis`(yCVeRiuR1-I8jO12*DH5&Uh!W$YCvJ_?sxVp9{@gE_+NkGmaV~0x}I-5@EJ=A^Ya_aPjk6$
zxE;|4Y{K5OdnjZX-!dwxokDnX+o_8PXOi@ce*m*Hb2x@rdQ^453A*OU5d7qieDjs1
z%F^_Pd>F1}NBX=(1K5g6EWZS?lHLja{wbd6!U&GgakF;QQIb#F(SEHhyfI**G@Zzx
z#>8hmv673bvxqzsg@&!_QF@qqwVb4U3BM%^GM4SlBkdp^)S&S*kkKyL!7jHI7UnnZ
z)mfruOsJHHTIfd7Af*#*E9r$Cef#f>
zzbrFV;BfY>;e-uyoJBnPg-uO5oxf=ln6%fZ!w1
z9V?&LOpmcOg^pIfw89NlNnJg4G$dcOQST(n!0yhI20>qMzFPjeS+YGja4n8%^MSiX
zqo*5~DAu?wER6PdIZngZ8+}~5*;BP~q!zW3d*N8j2D+Nx@IDT7jhPB
VX2wcv0W6wN`ax
zWi4i9(yxT2mt|0A+<#rYlo@MuaIfrJKKYn`gBlxujsLMzN78!vLpVWTKNaAKb%@(p
zO)plNyR?*VHZ#2Hh&EzAwJ4#h@IJimSRiObcPgZ`7xf?I4*6{ydYmr?DW
zs7|->d#J{_Ycb!yi#z^%l1-e74;B0~1D8#JSK8L5&Ba#SZcHS*ArmzX!tJedB=3nv
z+IZapgB^>vqk-UK>W7D{Hr-`tPN4^fqK~V