项目中有一个到时锁屏的的功能,就是当到达特定时间后,程序弹出一个蒙层将界面锁住,用户不能进行其他操作 (ps:按home键和back键蒙层也还在),除非输入密码或按规定操作,才可移除蒙层。
现将关键的使用代码简化贴出以供参考:
public class MainActivity extends Activity { private WindowManager.LayoutParams param; private WindowManager windowManager; private RelativeLayout mInView; private Button btn; private void initView() { windowManager = (WindowManager) getApplicationContext() .getSystemService(Context.WINDOW_SERVICE); param = new WindowManager.LayoutParams(); LayoutInflater inflater = LayoutInflater.from(getApplicationContext()); // 加载需要的XML布局文件 mInView = (RelativeLayout) inflater.inflate(R.layout.activity_main, null, false); btn = (Button) mInView.findViewById(R.id.btn); } public void addWindow() { // param.format = PixelFormat.RGBA_8888; // 背景透明 param.type = WindowManager.LayoutParams.TYPE_SYSTEM_ALERT;// 等于2003,意思是:系统提示,它总是出现在应用程序窗口之上 // param.gravity = 51; // 让该window后所有的东西都成暗淡(dim) param.format = 1; // param.alpha = 0.9f; param.type = 0x00000200;// 允许窗口扩展到屏幕之外,相当于满屏作用 // param.flags = 0x00000200; if (windowManager == null) windowManager = (WindowManager) getApplicationContext() .getSystemService(Context.WINDOW_SERVICE);// 获取WindowManager服务: try { windowManager.addView(mInView, param);// 添加view到屏幕 } catch (Exception e) { e.printStackTrace(); } } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); initView(); addWindow(); btn.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { // 移除windowview if (mInView != null) { windowManager.removeView(mInView); } } }); } }
其中关于windowmanager的相关信息网上有很多介绍,这里不再赘述。大家可以根据自身的实际情况对WindowManager.LayoutParams参数进行设置来满足不同需求。
相关推荐
android13 WindowManager-Shell.jar
Android悬浮窗实现原理和WindowManager详解 Android悬浮窗是指在Android系统中,可以悬浮在屏幕上的一种窗口,常见于QQ视频、手机杀毒软件的桌面小助手等应用中。要实现悬浮窗,需要使用WindowManager来管理窗口。...
本文将详细介绍如何在Android应用中采用`WindowManager`来屏蔽Home键。 首先,我们需要创建一个悬浮窗口(Floating Window),这是`WindowManager`的主要用途之一。悬浮窗口可以覆盖在其他应用之上,我们可以通过...
一个WindowManager悬浮窗,悬浮显示歌词效果。WindowManager背景设置为了透明色,显示的WindowManager关闭启动它的Activity回到主界面仍然有效。仅供参考............
`WindowManager`是Android SDK中的一个关键组件,它负责管理Android设备上的窗口。开发者可以利用`WindowManager`来添加、更新或删除窗口,包括创建悬浮框。以下是对`WindowManager`及悬浮框权限的详细说明: 1. **...
在Android开发中,浮动窗口(通常称为悬浮窗或者小部件)是一种常见的功能,它可以在主屏幕或其他应用之上显示内容,为用户提供便捷的操作或信息展示。本教程将详细讲解如何利用`WindowManager`来创建一个浮动窗口,...
WindowManager属性详解:WindowManager.LayoutParams 是 WindowManager 接口的嵌套类;继承于 ViewGroup.LayoutParams 。 它的内容十分丰富。其实WindowManager.java的主要内容就是由这个类定义构成。
在Android开发中,实现类似360悬浮球的效果是一项常见的需求,这主要涉及到对`WindowManager`类的使用,以及自定义View的交互处理。在这个DEMO中,开发者创建了一个可手动拖动的悬浮窗,其中视图是一个`TextView`,...
Windows Manager是一款窗口管理终端,可以远程连接到Linux的X桌面进行管理,与服务器端产生一个session相互通信,通过本文给大家分享Android WindowManager解析与骗取QQ密码的过程,需要的朋友参考下
在Android开发中,WindowManager是一个非常重要的服务,它允许开发者将视图添加到系统的顶级窗口层次结构中,实现各种自定义的界面效果。本篇主要探讨如何利用WindowManager的`addView()`方法来创建一个可伸缩的弹出...
在Android开发中,实现类似QQ视频那样的悬浮窗功能,需要用到`WindowManager`接口。`WindowManager`是Android系统服务之一,它允许应用管理窗口并控制它们在屏幕上的位置和显示方式。本篇将深入探讨如何利用`...
总的来说,创建一个带有圆角的`SurfaceView`悬浮窗涉及到对Android视图层次结构的理解、`SurfaceView`的特性利用、`WindowManager`的运用以及自定义`View`的绘制技巧。这个过程需要开发者具备扎实的Android基础知识...
Android 自定义 Toast 之 WindowManager Android 自定义 Toast 之 WindowManager 是 Android 开发中的一种常见技术,用于在应用程序中显示自定义的 Toast 消息。本文将详细介绍 Android 自定义 Toast 之 ...
在Android开发中,实现可拖动的控件是一项常见的需求,比如在创建自定义交互界面时。"android拖动控件,解决回到原点"这个标题揭示了一个常见问题:当用户拖动一个视图(View)后,由于父布局的刷新或其他原因,如...
在Android开发中,WindowManager是一个重要的系统服务,它允许我们添加、移除或者更新在窗口管理器层次结构中的视图。这个服务使得开发者能够创建浮动窗口(如对话框、通知等)或者在屏幕顶部显示一些状态信息。在...
本教程将深入讲解如何使用`WindowManager`服务来创建和管理Android悬浮窗,并通过一个简单的Demo——WindowManagerDemo来展示其实现过程。 首先,我们要理解`WindowManager`是Android系统提供的一个接口,它允许...
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN); // 监听键盘状态 View decorView = getWindow().getDecorView(); decorView.setOnSystemUiVisibilityChangeListener(new View....
在Android开发中,创建带有动画效果的弹窗可以极大地提升用户体验,使得应用更加生动和吸引人。本篇文章将深入探讨如何实现这样的功能,主要关注两种不同的实现方式。 首先,我们来了解一下基本的Android弹窗...
一般在android显示一个View都是通过Activity的setContentView设置的,但是还有一种方法,可以直接使用WindowManager在整个应用的最上层绘制我们需要显示的view,总体的效果类似于AlertDialog的弹出效果。 使用...
`Android WindowManager` 是Android框架的一部分,它允许开发者在设备屏幕上添加、管理和更新视图,包括创建浮动窗口。 创建系统浮动窗口的关键在于使用`WindowManager`服务和`LayoutParams`。以下是一些核心步骤:...