2012-10-04 85 views
3

我想快速介绍我的应用程序的新用户。介绍将突出UI中的功能并解释功能,类似于切片(请参阅下面的屏幕截图)和Youtube应用程序。Android应用程序介绍与覆盖

我想这涉及到整个屏幕的透明覆盖,然后在屏幕上获取视图的位置,以便它可以在覆盖图中被圈出或突出显示。我不知道如何去做使覆盖的一部分不透明。有任何想法吗?

enter image description here

+0

抱歉回答很快而没有考虑它,但现在我编辑的答案应该做你需要的。 –

回答

1

只需添加一个新的视图()和背景设置为黑色,用70%的α。确保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

要以最简单的方式获得想要的效果,您需要创建新资产并让它们覆盖不透明背景。这创造了效果的错觉,而无需让动态方式在所有设备上正常工作。

在图层中打孔的动态方法涉及创建自定义视图,覆盖dispatchDraw方法并将自定义蒙版应用于画布。对于冲在画布孔洞,您的自定义喷漆的对象就这样被创造:

maskPaint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.DST_IN)); 

兼容性不是很大这个,所以我建议你作假。