应用 Window 层级范围是 1~99,子 Window 层级范围是 1000~1999,系统 Window 层级范围是 2000~2999,这些层级范围对应着湖南幼儿师范高等专科学校 WindowManager.LayoutParams 的 type 参数,如果想要 Window 位于所有 Window 的最顶层,那么采用较大的层级即可,很显然系统 Window 的层级是最大的,当我们采用系统层级时,需要声明权限。
WindowManager是整个窗口管理机制里面的枢纽,也是这边重点要讲的。WindowManager实现了ViewManager,这个接口定义了我们对于Window的基本操作:
public interface ViewManager{ public void addView(View view, ViewGroup.LayoutParams params); public void updateViewLayout(View view, ViewGroup.LayoutParams params); 起个微信名字带来好运public void removeView(View view);}
这三个方法其实就是 WindowManager 对外提供的主要功能,即添加 View、更新 View 和删除 View。看一个通过 Wi电脑无法识别usb设备ndowManager 添加 Window 的例子:
public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { 陕西联通炫铃 super.onCreate(savedInstanceState); Button floatingButton = new Button(MainActivity.this); floatingButton.tText("button"); WindowManager.LayoutParams layoutParams = new WindowManager.LayoutParams( 羊奶粉十大品牌 WindowManager.LayoutParams.WRAP_CONTENT, WindowManager.LayoutParams.WRAP_CONTENT, 0, 0, PixelFormat.TRANSPARENT ); // flag 设置 Window 属性 layoutParams.flags= WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL; // type 设置 Window 类别(层级) layoutParams.type = WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY; layoutParams.gravity = Gravity.CENTER; WindowManager windowManager = getWindowManager(); windowManager.addView(floatingButton, layoutParams); }}
需要申请权限:
<us-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
本文地址:https://blog.csdn.net/qq_40207976/article/details/107985595
本文发布于:2023-04-04 02:57:41,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/fanwen/zuowen/94c706dd147d111f52022ace70adff23.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文word下载地址:Window层级.doc
本文 PDF 下载地址:Window层级.pdf
留言与评论(共有 0 条评论) |