AnyLayer
构建一个弹窗
/**
-
如果需要全局弹窗,必须现在 Application 中初始化
-
2.4.0 之后不再需要初始化也可全局弹窗
**/
@Deprecated
public static void init(@NonNull Application application)
/**
-
有背景高斯模糊弹窗,建议提前调用该方法初始化
-
不用在 Application 调用,可放到启动页中进行,避免影响 APP 启动速度
-
也可在用到的 Activity 的 onCreate 方法中
**/
public static void initBlurred(@NonNull Context context)
/**
- 有背景高斯模糊弹窗,在用到的 Activity 的 onCreate 方法中初始化后可在 onDestroy 中回收
**/
public static void recycleBlurred()
/**
-
此时不需要 APP 存在 Activity 实例
-
会新启动一个 Activity 并向根布局添加一个浮层
*/
public static void with(@Nullable Context context, LayerActivity.OnLayerCreatedCallback callback)
/**
-
向窗口根布局添加一个浮层
-
需要在 Application 中调用{@link AnyLayer#init(Application)}
**/
public static AnyLayer with()
/**
- 向父布局 viewGroup 添加一个浮层
*/
public static AnyLayer with(@NonNull ViewGroup viewGroup)
/**
- 向窗口根布局添加一个浮层
**/
public static AnyLayer with(@NonNull Context context)
/**
- 向窗口根布局添加一个浮层,且位置参照 targetView
**/
public static AnyLayer target(@NonNull View targetView)
/**
- 设置自定义 View
**/
public AnyLayer contentView(@NonNull View contentView)
/**
- 设置自定义布局文件
**/
public AnyLayer contentView(@LayoutRes int contentViewId)
/**
-
设置自定义布局文件中状态栏的占位 View
-
该控件高度将设置为状态栏高度,可用来使布局整体下移,避免状态栏遮挡
**/
public AnyLayer asStatusBar(@IdRes int statusBarId)
/**
- 绑定数据
**/
public AnyLayer bindData(LayerManager.IDataBinder dataBinder)
/**
- 设置显示状态改变的监听
**/
public AnyLayer onVisibleChangeListener(LayerManager.OnVisibleChangeListener mOnVisibleChangeListener)
/**
- 设置变更为显示状态监听
**/
public AnyLayer onLayerShowListener(LayerManager.OnLayerShowListener onLayerShowListener)
/**
- 设置变更为隐藏状态监听
**/
public AnyLayer onLayerDismissListener(LayerManager.OnLayerDismissListener onLayerDismissListener)
/**
- 设置子布局的 gravity,可直接在布局文件指定 layout_gravity 属性,作用相同
**/
public AnyLayer gravity(int gravity)
/**
-
当以 target 方式创建时为参照 View 位置显示
-
可自己指定浮层相对于参照 View 的对齐方式
-
@param direction 主方向
-
@param horizontal 水平对齐方式
-
@param vertical 垂直对齐方式
-
@param inside 是否强制位于屏幕内部
**/
public AnyLayer alignment(@NonNull Alignment.Direction direction,
@NonNull Alignment.Horizontal horizontal,
@NonNull Alignment.Vertical vertical,
boolean inside)
/**
- 自定义浮层的进入和退出动画,可使用工具类{@link AnimHelper}
**/
public AnyLayer contentAnim(LayerManager.IAnim contentAnim)
/**
- 自定义浮层的进入动画
**/
public AnyLayer contentInAnim(@AnimRes int anim)
/**
- 自定义浮层的进入动画
**/
public AnyLayer contentInAnim(@NonNull Animation anim)
/**
- 自定义浮层的退出动画
**/
public AnyLayer contentOutAnim(@AnimRes int anim)
/**
- 自定义浮层的退出动画
**/
public AnyLayer contentOutAnim(@NonNull Animation anim)
/**
- 自定义背景的进入和退出动画,可使用工具类{@link AnimHelper}
**/
public AnyLayer backgroundAnim(LayerManager.IAnim backgroundAnim)
/**
- 自定义背景的进入动画
**/
public AnyLayer backgroundInAnim(@AnimRes int anim)
/**
- 自定义背景的退出动画
**/
public AnyLayer backgroundInAnim(@NonNull Animation anim)
/**
- 自定义背景的退出动画
**/
public AnyLayer backgroundOutAnim(@AnimRes int anim)
/**
- 自定义背景的退出动画
**/
public AnyLayer backgroundOutAnim(@NonNull Animation anim)
/**
- 默认浮层进入和退出动画时长
**/
public AnyLayer defaultContentAnimDuration(long defaultAnimDuration)
/**
- 默认浮层进入动画时长
**/
public AnyLayer defaultContentInAnimDuration(long defaultInAnimDuration)
/**
- 默认浮层退出动画时长
**/
public AnyLayer defaultContentOutAnimDuration(long defaultOutAnimDuration)
/**
- 默认背景进入和退出动画时长
**/
public AnyLayer defaultBackgroundAnimDuration(long defaultAnimDuration)
/**
- 默认背景进入动画时长
**/
public AnyLayer defaultBackgroundInAnimDuration(long defaultInAnimDuration)
/**
- 默认背景退出动画时长
**/
public AnyLayer defaultBackgroundOutAnimDuration(long defaultOutAnimDuration)
/**
-
设置背景为当前 activity 的高斯模糊效果
-
设置之后其他背景设置方法失效,仅{@link #backgroundColorInt(int)}生效
-
且设置的 backgroundColor 值调用 imageView.setColorFilter(backgroundColor)设置
-
建议此时的{@link #backgroundColorInt(int)}传入的为半透明颜色
-
@param radius 模糊半径
**/
public AnyLayer backgroundBlurRadius(@FloatRange(from = 0, fromInclusive = false, to = 25) float radius)
/**
-
设置背景为当前 activity 的高斯模糊效果
-
@param radius 模糊的百分比(相较于短边)
**/
public AnyLayer backgroundBlurPercent(@FloatRange(from = 0, fromInclusive = false) float percent)
/**
- 设置背景高斯模糊的缩小比例
**/
public AnyLayer backgroundBlurScale(@FloatRange(from = 1) float scale)
/**
- 设置背景图片
**/
public AnyLayer backgroundBitmap(@NonNull Bitmap bitmap)
/**
- 设置背景资源
**/
public AnyLayer backgroundResource(@DrawableRes int resource)
/**
- 设置背景 Drawable
**/
public AnyLayer backgroundDrawable(@NonNull Drawable drawable)
/**
-
设置背景颜色
-
在调用了{@link #backgroundBitmap(Bitmap)}或者{@link #backgroundBlurRadius(float)}方法后
-
该颜色值将调用 imageView.setColorFilter(backgroundColor)设置
-
建议此时传入的颜色为半透明颜色
-
@param colorInt 颜色值
**/
public AnyLayer backgroundColorInt(@ColorInt int colorInt)
/**
- 设置背景颜色
**/
public AnyLayer backgroundColorRes(@ColorRes int colorRes)
/**
-
设置浮层外部是否拦截触摸
-
默认为 true,false 则事件由 activityContent 本身消费
**/
public AnyLayer outsideInterceptTouchEvent(boolean intercept)
/**
- 设置点击浮层以外区域是否可关闭
**/
public AnyLayer cancelableOnTouchOutside(boolean cancelable)
/**
- 设置点击返回键是否可关闭
**/
public AnyLayer cancelableOnClickKeyBack(boolean cancelable)
/**
- 对一个 View 绑定点击事件
**/
public AnyLayer onClick(@IdRes int viewId,
LayerManager.OnLayerClickListener listener)
/**
- 对一个 View 绑定点击事件,点击时直接隐藏浮层
**/
public AnyLayer onClickToDismiss(@IdRes int viewId,
LayerManager.OnLayerClickListener listener)
/**
- 对多个 View 绑定点击事件
**/
public AnyLayer onClick(LayerManager.OnLayerClickListener listener,
@IdRes int viewId,
@IdRes int… viewIds)
/**
- 对多个 View 绑定点击事件,点击时直接隐藏浮层
**/
public AnyLayer onClickToDismiss(LayerManager.OnLayerClickListener listener,
@IdRes int viewId,
@IdRes int… viewIds)
/**
- 绑定该控件点击时直接隐藏浮层
**/
public AnyLayer onClickToDismiss(@IdRes int viewId, @IdRes int… viewIds)
/**
- 获取浮层是否已显示
**/
public boolean isShow()
/**
- 显示
**/
public void show()
/**
- 隐藏
**/
public void dismiss()
/**
- 获取 Context
**/
public Context getContext()
/**
- 获取布局子控件
**/
public V getView(@IdRes int viewId)
/**
- 获取 View 管理容器
**/
public ViewHolder getViewHolder()
/**
- 获取自定义的浮层控件
**/
public View getContentView()
/**
- 获取背景图
**/
public ImageView getBackground()
/**
-
适配软键盘的弹出,布局自动上移
-
在某几个 EditText 获取焦点时布局上移
-
在{@link LayerManager.OnVisibleChangeListener#onShow(AnyLayer)}中调用
-
应该和{@link #removeSoftInput()}成对出现
-
@param editText 焦点 EditTexts
**/
public void compatSoftInput(EditText… editText)
/**
-
移除软键盘适配
-
在{@link LayerManager.OnVisibleChangeListener#onDismiss(AnyLayer)}中调用
-
应该和{@link #compatSoftInput(EditText…)}成对出现
**/
public void removeSoftInput()
BaseLayer
采用继承的方式创建一个浮层,为方便通用浮层的封装,可在次基础上实现 MVP 模式。
/**
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则近万的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。





既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:Android)
最后
说一千道一万,不如自己去行动。要想在移动互联网的下半场是自己占有一席之地,那就得从现在开始,从今天开始,马上严格要求自己,既重视业务实现能力,也重视基础和原理。基础夯实好了,高楼才能够平地而起,稳如泰山。
最后为了帮助大家深刻理解Android相关知识点的原理以及面试相关知识,这里放上相关的我搜集整理的24套腾讯、字节跳动、阿里、百度2020-2021面试真题解析,我把技术点整理成了视频和PDF(实际上比预期多花了不少精力),包知识脉络 + 诸多细节。
还有 高级架构技术进阶脑图、Android开发面试专题资料 帮助大家学习提升进阶,也节省大家在网上搜索资料的时间来学习,也可以分享给身边好友一起学习。



网上学习 Android的资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。希望这份系统化的技术体系对大家有一个方向参考。
《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》,点击传送门即可获取!
Android)**
最后
说一千道一万,不如自己去行动。要想在移动互联网的下半场是自己占有一席之地,那就得从现在开始,从今天开始,马上严格要求自己,既重视业务实现能力,也重视基础和原理。基础夯实好了,高楼才能够平地而起,稳如泰山。
最后为了帮助大家深刻理解Android相关知识点的原理以及面试相关知识,这里放上相关的我搜集整理的24套腾讯、字节跳动、阿里、百度2020-2021面试真题解析,我把技术点整理成了视频和PDF(实际上比预期多花了不少精力),包知识脉络 + 诸多细节。
还有 高级架构技术进阶脑图、Android开发面试专题资料 帮助大家学习提升进阶,也节省大家在网上搜索资料的时间来学习,也可以分享给身边好友一起学习。
[外链图片转存中…(img-dR9Bhhi5-1712474249440)]
[外链图片转存中…(img-hOoy8KpA-1712474249440)]
[外链图片转存中…(img-TGQjleBo-1712474249441)]
网上学习 Android的资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。希望这份系统化的技术体系对大家有一个方向参考。
本文介绍了AnyLayer库,一个用于创建具有背景模糊、动画效果和自定义配置的弹窗组件,同时提供了与Android开发相关的学习资源和面试题集,帮助开发者提升技能和理解技术原理。
908

被折叠的 条评论
为什么被折叠?



