我们Android平台是一个又一个的Activity组成的,每一个Activity有一个或者多个View构成。所以说,当我们想显示一个界面的时候,我们首先想到的是建立一个Activity,然后所有的操作在Activity里面实现,或者是一个Dialog或者Toast。这种方式固然简单,但是在有些情况下,我们要求的只是简单的显示,用Activity显然是多余,这个时候,我们如何处理呢?
原来,整个Android的窗口机制是基于一个叫做 WindowManager,这个接口可以添加view到屏幕,也可以从屏幕删除view。它面向的对象一端是屏幕,另一端就是View,直接忽略我们以前的Activity或者Dialog之类的东东。其实我们的Activity或者Diolog底层的实现也是通过WindowManager,这个 WindowManager是全局的,整个系统就是这个唯一的东东。它是显示View的最底层了。
写一个简单的代码:
WindowManager mWm = (WindowManager)getSystemService(Context.WINDOW_SERVICE); Button view = new Button(this); view.setText("window manager test!"); WindowManager.LayoutParams mParams = new WindowManager.LayoutParams(); mWm.addView(view, mParams);
一般在刚开始开发android时,会犯一个错误,即在View的构造函数中获取getWidth()和getHeight(),当一个view对象创建时,android并不知道其大小,所以getWidth()和getHeight()返回的结果是0,真正大小是在计算布局时才会计算,所以会发现一个有趣的事,即在onDraw( ) 却能取得长宽的原因。 width = activity.getWindowManager().getDefaultDisplay().getWidth(); height = activity.getWindowManager().getDefaultDisplay().getHeight();
相关推荐
本教程将深入讲解如何使用`WindowManager`服务来创建和管理Android悬浮窗,并通过一个简单的Demo——WindowManagerDemo来展示其实现过程。 首先,我们要理解`WindowManager`是Android系统提供的一个接口,它允许...
在Android开发中,浮动窗口(通常称为悬浮窗或者小部件)是一种常见的功能,它可以在主屏幕或其他应用之上显示内容,为用户提供便捷的操作或...通过学习和运行这个例子,你将更深入地理解Android中浮动窗口的实现方式。
本文将详细讲解如何使用WindowManager创建对话框以及在Android 6.0及更高版本中进行权限判断。 首先,让我们理解WindowManager的基本概念。WindowManager是Android系统的系统服务之一,它提供了添加、删除和更新...
在Android开发中,实现类似360悬浮球的效果是一项常见的需求,这主要涉及到对`WindowManager`类的使用,以及自定义View的交互处理。在这个DEMO中,开发者创建了一个可手动拖动的悬浮窗,其中视图是一个`TextView`,...
首先,我们要了解`WindowManager`是Android系统中的一个接口,它用于管理系统的窗口。通过`WindowManager`,我们可以添加、删除或更新窗口,实现自定义视图的显示。在实际应用中,悬浮窗通常会用到`TYPE_PHONE`或者`...
首先,我们要理解`WindowManager`在Android系统中的角色。`WindowManager`是Android系统提供的一个接口,用于管理应用程序窗口。它允许我们将视图(View)添加到窗口层级结构中,这些视图可以作为浮动窗口显示在应用...
Android系统的用户界面,即UI框架,包括SurfaceFlinger、WindowManager等服务,它们负责图形渲染和窗口管理。这部分移植需要确保UI能正常工作在目标硬件上,并且性能良好。 最后是应用程序的移植。Android应用通常...
本文将深入讲解如何在Android的Dialog中生成并显示二维码,以及如何处理点击Dialog外部以关闭Dialog的事件。 首先,我们需要了解二维码生成的基本原理。二维码(Quick Response Code)是一种二维条形码,能够存储比...
Android 中的 Window 管理是 Android 开发中非常重要的一个topic,_WindowManager 是 Android 中对 Window 的管理的核心,通过本文,我们将深入讲解 Android 中 Window 的管理机制。 一、理解 Android 中的 Window ...
在Android开发中,实现类似360安全卫士的...总之,这个压缩包中的项目将帮助开发者理解如何在Android中实现类似360安全卫士的浮动小插件效果,通过学习和实践,开发者可以创建自己的个性化悬浮窗应用,提升用户体验。
本文将详细讲解如何在Android系统4.4(API Level 19)及以上版本实现这样的功能,主要涉及的技术点是使用`TYPE_TOAST`窗口类型。 首先,我们需要了解Android中的窗口类型。在Android中,每个应用都运行在一个独立的...
9. **Android WindowManager 架构与设计解析** (AF109) 这门课程涉及窗口管理器的设计和实现,对于理解屏幕布局和窗口堆叠至关重要。 10. **Application Launching & Launcher Design** (AF1010) 学习应用启动...
由于描述中提到源码可能需要自行调试才能运行,我们将探讨一些关于Android悬浮窗开发的基础知识以及可能遇到的问题。 1. **Android悬浮窗(Floating Window)**: - 在Android中,悬浮窗通常通过实现`SYSTEM_ALERT...
在Android开发中,桌面悬浮按钮(也称为悬浮窗或系统托盘小部件)...通过对`FloatsWindow`压缩包中的代码进行学习和理解,开发者可以掌握Android悬浮窗的实现原理,并运用到自己的项目中,为用户提供更丰富的交互体验。
这种服务基于`android.app.Service`,并利用`WindowManager`接口将视图添加到系统的窗口管理器中,使其在屏幕的任意位置浮动。下面我们将详细讲解实现这个功能的关键步骤: 1. **创建悬浮服务类**: 首先,我们...
在Android中,实现悬浮窗口主要通过`WindowManager`服务和`LayoutParams`类。`WindowManager`接口允许开发者添加、移除或更新视图到系统窗口层次结构。`LayoutParams`则用来设置窗口的布局参数,如位置、大小、类型...
本篇将详细讲解Android悬浮窗的相关知识点,以及如何通过提供的源码进行学习和实践。 1. **悬浮窗的基本概念** - **SYSTEM_ALERT_WINDOW** 权限:在Android 6.0(API 23)及以上版本,创建悬浮窗需要申请`...
`WindowManager`是Android系统提供的接口,可以用来添加、移除或者更新显示在窗口管理器中的视图。以下是一个简单的悬浮窗创建步骤: 1. 在AndroidManifest.xml中声明所需的权限: ```xml <uses-permission ...
项目中可能详细讲解了如何结合Android的内存管理机制,以及如何利用编程技巧,实现类似QQ悬浮窗的高效内存计算和管理。 总之,“Android仿QQ悬浮_火箭发射内存计算”是一个深入探讨Android悬浮窗实现和内存优化的...