android 获得顶层窗口_Android使用WindowManager实现PopupWindow浮动层窗口

本文介绍了如何在Android中使用WindowManager创建一个PopupWindow浮动层窗口,以在屏幕上显示提示信息。通过WindowManager添加自定义View,实现不受当前窗口影响的交互和动画效果。示例代码展示了如何创建和控制浮动层,以及处理不同Window类型图层顺序的问题,以确保与Dialog和Toast的正确显示。
摘要由CSDN通过智能技术生成

有些时候我们的APP需要在当前屏幕上显示一些提示信息,当然大多数情况下可以通过比如对话框、Activity来完成,但是还是会有一些特殊的场景,比如不能使当前Activity Pause、要始终置于屏幕最前面等,这个时候我们可能就需要使用WindowManager来添加一个浮动层View。浮动层有很多现成的使用场景,比如鼠标、Toast和Dialog都是通过这样的方式实现的,因此你可以在任何时刻弹出一个Toast而不会对当前窗口产生任何影响,更复杂一些的使用场景是系统的音量调节UI、关机对话框等。

看到这里大致了解了浮动层的使用场景,之前的项目中在焦点移动动画、全局Push消息提示中采用了这样的方案,因此使用到了PopupWindow,下面简单介绍一些如何实现。

浮动层的实现主要使用到了WindowManager这个类,我们可以向这个类任意添加一个自定义的View,并且可以控制View从而实现一些交互和动画特效。下面介绍一个简单的PopupWindow的代码实现:

TipsPopupWindow.java

public class TipsPopupWindow {

private FrameLayout popWindowWrap;

private View animationControler;

private View popView;

private Context mContext;

TipsPopupWindow(Context context,WindowManager.LayoutParams popupWindowLayoutParams) {

mContext = context;

popWindowWrap = new FrameLayout(mContext);

LayoutInflater layoutInflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

popView = layoutInflater.inflate(R.layout.session_tips_prompt, null);

popWindowWrap.setLayoutParams(popupWindowLayoutParams);

popWindowWrap.addView(popView);

WindowManager mWindowManager = (W

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值