最近项目中新增了新手引导功能,相对比较简单,即在界面上显示一个蒙版,然后在蒙版上面显示几个图标和提示文字,指导用户该如何使用的功能,参考效果图如下:
检索了一下网上的实现方式,很多都是在Activity中new各种view,然后对这些view设置位置,最后把它们addView到布局中,很显然,这种方式是可以达到预期的,但就是繁琐了许多,第一是要创建各种view,第二是对这些view计算它们应该显示的位置,这个是最繁琐的,因为不够直观,所以计算起来比较费劲。
我们常用的布局方式是使用.xml文件,比如上图,包含了气泡型的图标、提示文字、圆形图标以及它周围的环形阴影,我们可以用shape画一个ring型的drawable,然后在layout中对上图进行布局,岂不是很简单。
网上很多在Activity中new各种view的方式可能是受限于这些view的setBackground()、setBackgroundResource()等方法的限制,或者无法创建复杂的drawable。(纯属猜测,哈哈)!
其实,我们可以把布局好的.xml文件(例如R.layout.user_guide_view)转换成View(注意,不是其他子view),然后add转换后的View即可,参考方式如下:
View view = View.inflate(this, R.layout.user_guide_view, null);
仅此一行代码就可以把.xml文件转换为view,省去了new各种view,计算各种位置。
本篇比较简单,仅此记录工作中的点点滴滴,以备查阅。