项目中经常会用到引导页面这样一个东西,方便教育/提醒小白用户有或者怎样使用产品狗设计出来的创意(奇葩)功能。为此程序员和UI干了一架,到底谁来做。出于项目节奏的需要(被逼的),UI设计师往往没事干,拦下了此活,被项目组大赞无私。出图了,程序员开始贴图到页面,发布项目。

于此有大牛设计出简单方便的第三方库,解放了UI小妹妹。NewbieGuide

github地址:https://github.com/huburt-Hu/NewbieGuide

大佬已经将详细的用法和注意事项详细说明了。通读源码后在此啰嗦几句。

主要思想。

1.页面引导 在DecorView 的 android.R.id.content 既 Framelayout 里面添加最上层的View视图,通过

onDraw()绘画时,采用 Paint 的 setXfermode()设置绘画方式 PorterDuffXfermode.CLEAR 清除图像的方式 镂空下层的控件视图,已达到突出引导功能

2.局部引导 在需要设置引导的区域ViewGroup 控件区域,通过anchor方法设置需要显示的父控件,和第一种android.R.id.content 原理类似,替换了显示位置。

当然这只是其中的部分实践思想。具体请看源码。

Android 新手引导 NewbieGuide 原理解析相关推荐

  1. Android 插件化原理解析——Activity生命周期管理

    之前的 Android插件化原理解析 系列文章揭开了Hook机制的神秘面纱,现在我们手握倚天屠龙,那么如何通过这种技术完成插件化方案呢?具体来说,插件中的Activity,Service等组件如何在A ...

  2. Android代码入侵原理解析(一)

    Original 2017-05-06 付超红 滴滴安全应急响应中心 2017年初,在滴滴安全沙龙上,滴滴出行安全专家--付超红,针对App的攻与防进行了分享.会后大家对这个议题反响热烈,纷纷求详情求 ...

  3. Android 插件化原理解析——Hook机制之AMSPMS

    在前面的文章中我们介绍了DroidPlugin的Hook机制,也就是代理方式和Binder Hook:插件框架通过AOP实现了插件使用和开发的透明性.在讲述DroidPlugin如何实现四大组件的插件 ...

  4. Android动画-Animation原理解析

    Android动画-Animation原理解析 一.概述 在android中动画分为3类,帧动画.补间动画.属性动画 今天要说的就是"补间动画",补间动画的基类是Animation ...

  5. Android 广播实现原理解析

    Android 广播实现原理解析 前言 Android四大组件中的BroadcastReceiver,在我们实际工作中被频繁的使用,我们可以利用系统的开机广播,网络状态改变的广播等等实现我们的业务逻辑 ...

  6. Android之Butterknife原理解析

    转载请标明出处:[顾林海的博客] 个人开发的微信小程序,目前功能是书籍推荐,后续会完善一些新功能,希望大家多多支持! ##前言 Butterknife是一个专注于Android系统的View注入框架, ...

  7. Android 热修复原理解析

    概述 关联文章 JVM 类加载机制 Android 中的ClassLoader 假如刚发布的版本出现了bug,我们就需要解决bug,并且重新发布新的版本,这样会浪费很多的人力物力,有没有一种可以不重新 ...

  8. Android插件化原理解析——ContentProvider的插件化

    目前为止我们已经完成了Android四大组件中Activity,Service以及BroadcastReceiver的插件化,这几个组件各不相同,我们根据它们的特点定制了不同的插件化方案:那么对于Co ...

  9. Android 插件化原理解析——Service的插件化

    在 Activity生命周期管理 以及 广播的管理 中我们详细探讨了Android系统中的Activity.BroadcastReceiver组件的工作原理以及它们的插件化方案,相信读者已经对Andr ...

最新文章

  1. 为什么苹果 M1 芯片如此之快?
  2. aspx后台调用前台jquery_Jquery Ajax调用aspx页面方法
  3. Vue-router VUE路由系统
  4. java 杭州专卖店_杭州JAVA哪家有名气
  5. python中res代表什么_在下面的代码中,zip(*res)在python中是什么意思?
  6. 加载java ie停止工作_打开网页,IE浏览器提示Internet Explorer 已停止工作什么原因?怎么解决?...
  7. oracle表段是什么,【DB笔试面试274】在Oracle中,什么是延迟段创建(Deferred Segment Crea......
  8. 60佳优秀的国外电子商务网站设计案例(上篇)
  9. html调用js函数取随机返回数值并自动显示在html页面
  10. python滑稽脸代码_如何用python进行简单的syn flood滑稽(带代码@)
  11. 磁盘/分区克隆:如何将硬盘数据快速迁移至新的硬盘?
  12. android+cast+sdk,如何使用Android发现Chromecast设备?
  13. python安装以后怎么打开_安装python后如何打开
  14. 沐风水库理论:企业微信生态营销秘密核武器
  15. 粉丝来信:黑猫投诉对象给投诉错了,又无法撤销删除应该怎么办呢?
  16. 用js给自己照相并修图
  17. Python 一个快速视频剪辑编辑神器 — Moviepy
  18. 软件项目实施原则规范
  19. databinding+viewmodel mvvm初学者踩坑
  20. 怎样用计算机做初中物理实验,如何利用多媒体上好物理实验课

热门文章

  1. 18天精读掌握《费曼物理学讲义卷一》 第4天 2019.6.17
  2. 费曼物理学讲义(连载)
  3. python学习笔记——字符串操作
  4. codeforces 514B
  5. F - 恐怖分子 CodeForces - 514B
  6. js正则:提取css语法中的背景图片名字
  7. java实现中国象棋1:界面的制作
  8. 中华云盒M1刷Linux教程,N1 盒子刷最新版 armbian 及软件安装
  9. linux 文件共享技巧
  10. linux串口文件传输助手怎么用,SerialTool: SerialTool是一个实用的串口调试工具,这款工具支持串口调试助手、波形显示和文件传输等功能...