我想为新用户快速介绍我的应用。介绍将突出显示ui中的功能并解释功能,类似于切片(请参见下面的屏幕截图)和Youtube应用程序。
我想这涉及到整个屏幕的透明覆盖,然后在屏幕上获取视图的位置,以便可以在叠加层中圈出或突出显示。我不知道如何使叠加层的一部分不透明。有什么想法吗?
答案 0 :(得分:1)
只需添加一个新的View()并将背景设置为黑色,使用70%alpha。确保Fragment的Parent ViewGroup是Relativelayout,并调用bringChildToFront(MyHighlightedView)。
overlay=new View();
overlay.setBackgroundColor(#*BLACKWITHALPHAVALUE*);
getView().addView(overlay, new LayoutParams(MATCH_PARENT,MATCH_PARENT);
getView().bringChildToFront(overlay);
getView().bringChildToFront(MyHighlightedView);
答案 1 :(得分:1)
要以最简单的方式获得您想要的效果,您可能希望创建新资源并让它们覆盖您的不透明背景。这会产生效果的幻觉,而不会让动态的方法在所有设备上正常工作。
在图层中打孔的动态方法包括创建自定义视图,覆盖dispatchDraw方法并将自定义蒙版应用于画布。对于在画布上打孔,您的自定义绘制对象将按如下方式创建:
maskPaint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.DST_IN));
兼容性不是很好,所以我建议假装它。