最近产品需要开发一个新的功能,当App新版本第一次打开一个界面时,为改界面添加蒙层效果,效果图如下:
可以考虑:
在改页面的布局文件中添加一个透明的布局文件,当APP新版本第一次打开该页面时显示该透明布局文件,其他的时候隐藏掉;
但是这样的做法有一个弊端就是每个需要这种效果的页面都需要在布局文件中添加该透明布局文件太繁琐性价比也比较高
那么有没有可不可以将这种操作抽象出来做成一个统一的方法呢?答案是肯定的;
如果大家熟悉android界面加载流程的话(不熟悉的话,可以参考android源码解析部分blog:http://blog.csdn.net/column/details/androidframeworks.html),就会知道我们的界面是系统加载在一个id为content的FrameLayout中的,因此我们可以抽象出一个方法,用于为该FramgLayout添加透明背景,具体代码操作如下:
/**
* 为rootView添加蒙层
* @return
*/
public static void addLayer(Activity mContext, View layerView) {
if (mContext == null || layerView == null)
return;
ViewGroup contentView = (ViewGroup) mContext.getWindow().findViewById(Window.ID_ANDROID_CONTENT);
contentView.addView(layerView);
}
这样我们就抽相出了一个为界面添加蒙层的静态方法,其中参数layerView就是蒙层View,这里可以定制显示效果;