`
wqkerry
  • 浏览: 14145 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

android WindowManager

阅读更多

项目中有一个到时锁屏的的功能,就是当到达特定时间后,程序弹出一个蒙层将界面锁住,用户不能进行其他操作  (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

    android13 WindowManager-Shell.jar

    Android利用WindowManager实现悬浮窗

    Android悬浮窗实现原理和WindowManager详解 Android悬浮窗是指在Android系统中,可以悬浮在屏幕上的一种窗口,常见于QQ视频、手机杀毒软件的桌面小助手等应用中。要实现悬浮窗,需要使用WindowManager来管理窗口。...

    android 采用windowmanager屏蔽home键

    本文将详细介绍如何在Android应用中采用`WindowManager`来屏蔽Home键。 首先,我们需要创建一个悬浮窗口(Floating Window),这是`WindowManager`的主要用途之一。悬浮窗口可以覆盖在其他应用之上,我们可以通过...

    Android WindowManager悬浮显示歌词

    一个WindowManager悬浮窗,悬浮显示歌词效果。WindowManager背景设置为了透明色,显示的WindowManager关闭启动它的Activity回到主界面仍然有效。仅供参考............

    Android悬浮框权限判断WindowManager

    `WindowManager`是Android SDK中的一个关键组件,它负责管理Android设备上的窗口。开发者可以利用`WindowManager`来添加、更新或删除窗口,包括创建悬浮框。以下是对`WindowManager`及悬浮框权限的详细说明: 1. **...

    android浮动窗口实现级点击消失例子

    在Android开发中,浮动窗口(通常称为悬浮窗或者小部件)是一种常见的功能,它可以在主屏幕或其他应用之上显示内容,为用户提供便捷的操作或信息展示。本教程将详细讲解如何利用`WindowManager`来创建一个浮动窗口,...

    WindowManager属性详解

    WindowManager属性详解:WindowManager.LayoutParams 是 WindowManager 接口的嵌套类;继承于 ViewGroup.LayoutParams 。 它的内容十分丰富。其实WindowManager.java的主要内容就是由这个类定义构成。

    简单模仿360悬浮球 手动拖动悬浮窗效果DEMO WindowManager Demo

    在Android开发中,实现类似360悬浮球的效果是一项常见的需求,这主要涉及到对`WindowManager`类的使用,以及自定义View的交互处理。在这个DEMO中,开发者创建了一个可手动拖动的悬浮窗,其中视图是一个`TextView`,...

    通过案例分析Android WindowManager解析与骗取QQ密码的过程

    Windows Manager是一款窗口管理终端,可以远程连接到Linux的X桌面进行管理,与服务器端产生一个session相互通信,通过本文给大家分享Android WindowManager解析与骗取QQ密码的过程,需要的朋友参考下

    android利用windowmanager的伸缩式窗口

    在Android开发中,WindowManager是一个非常重要的服务,它允许开发者将视图添加到系统的顶级窗口层次结构中,实现各种自定义的界面效果。本篇主要探讨如何利用WindowManager的`addView()`方法来创建一个可伸缩的弹出...

    Android 利用WindowManager实现悬浮窗 demo

    在Android开发中,实现类似QQ视频那样的悬浮窗功能,需要用到`WindowManager`接口。`WindowManager`是Android系统服务之一,它允许应用管理窗口并控制它们在屏幕上的位置和显示方式。本篇将深入探讨如何利用`...

    android surfaceview 悬浮窗圆角 windowmanager

    总的来说,创建一个带有圆角的`SurfaceView`悬浮窗涉及到对Android视图层次结构的理解、`SurfaceView`的特性利用、`WindowManager`的运用以及自定义`View`的绘制技巧。这个过程需要开发者具备扎实的Android基础知识...

    Android自定义Toast之WindowManager

    Android 自定义 Toast 之 WindowManager Android 自定义 Toast 之 WindowManager 是 Android 开发中的一种常见技术,用于在应用程序中显示自定义的 Toast 消息。本文将详细介绍 Android 自定义 Toast 之 ...

    android拖动控件,解决回到原点

    在Android开发中,实现可拖动的控件是一项常见的需求,比如在创建自定义交互界面时。"android拖动控件,解决回到原点"这个标题揭示了一个常见问题:当用户拖动一个视图(View)后,由于父布局的刷新或其他原因,如...

    Android使用WindowManager制作一个可拖动的控件

    在Android开发中,WindowManager是一个重要的系统服务,它允许我们添加、移除或者更新在窗口管理器层次结构中的视图。这个服务使得开发者能够创建浮动窗口(如对话框、通知等)或者在屏幕顶部显示一些状态信息。在...

    Android悬浮窗实现 使用WindowManager Demo

    本教程将深入讲解如何使用`WindowManager`服务来创建和管理Android悬浮窗,并通过一个简单的Demo——WindowManagerDemo来展示其实现过程。 首先,我们要理解`WindowManager`是Android系统提供的一个接口,它允许...

    android 软键盘弹出相关的坑之解决方法

    getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN); // 监听键盘状态 View decorView = getWindow().getDecorView(); decorView.setOnSystemUiVisibilityChangeListener(new View....

    Android带动画效果的弹窗

    在Android开发中,创建带有动画效果的弹窗可以极大地提升用户体验,使得应用更加生动和吸引人。本篇文章将深入探讨如何实现这样的功能,主要关注两种不同的实现方式。 首先,我们来了解一下基本的Android弹窗...

    Android使用WindowManager构造悬浮view

    一般在android显示一个View都是通过Activity的setContentView设置的,但是还有一种方法,可以直接使用WindowManager在整个应用的最上层绘制我们需要显示的view,总体的效果类似于AlertDialog的弹出效果。 使用...

    SystemFloatingWinowDemo.zip

    `Android WindowManager` 是Android框架的一部分,它允许开发者在设备屏幕上添加、管理和更新视图,包括创建浮动窗口。 创建系统浮动窗口的关键在于使用`WindowManager`服务和`LayoutParams`。以下是一些核心步骤:...

Global site tag (gtag.js) - Google Analytics