首先,得先说明,这个例子并不是我写的,是从eoeAndroid的一个帖子上面看到的,下载了他的源代码,然后分析一下,供学习共享。(另外,对于其代码有所修改,以便于更好的说明问题,另:同时把源代码上传,下载地址:http://download.csdn.net/detail/aomandeshangxiao/3880055)
一开始,我们先看一下运行效果:
其中,
这一块就是悬浮窗,可以随意拖动,动态显示当前内存使用量。
下面看一下代码是如何实现的:
悬浮窗的实现是用了一个service,为什么要用service呢?了解service特点的大体就会明白。下面看一下:
其主要功能部分在creatView方法里:
首先,代码里面用到了WindowManager借口,整个Android的窗口机制是基于一个叫做
WindowManager,这个接口可以添加view到屏幕,也可以从屏幕删除view。它面向的对象一端是屏幕,另一端就是View,直接忽略我们以前的Activity或者Dialog之类的东东。其实我们的Activity或者Diolog底层的实现也是通过WindowManager,这个 WindowManager是全局的,整个系统就是这个唯一的东东。它是显示View的最底层了。(该段文字来自网络)其方法很简单,基本用到的就三个addView,removeView,updateViewLayout。另:在设置View高度和宽度的时候一个错误,即在View的构造函数中获取getWidth()和getHeight(),当一个view对象创建时,android并不知道其大小,所以getWidth()和getHeight()返回的结果是0,真正大小是在计算布局时才会计算,所以会发现一个有趣的事,即在onDraw(
) 却能取得长宽的原因。使用一下方法即可:
下面是LayoutParams,设置他的属性:详情请看上一篇文章:
http://blog.csdn.net/aomandeshangxiao/article/details/7040486
在这里是设置成了所有应用程序之上,状态栏之下的形式,当移动的时候,会调用case
MotionEvent.ACTION_MOVE:
下面的代码主要是:
从新设置浮动栏的位置参数。这样就实现了拖动的功能。其内存数据是如何获取及及时更新的呢?
我们注意到了handler:
我们找到dataRefresh方法,delaytime是设置的1000,也就是每一秒钟更新一次数据。
最后,看下memInfo的定义:
里面只定义了两个方法,获取总内存和使用内存。
分享到:
相关推荐
总的来说,创建Android悬浮窗并获取内存信息涉及多个步骤,包括权限声明、自定义View布局、悬浮窗的添加与管理,以及系统内存信息的获取。理解并熟练掌握这些知识点对于Android开发者来说是非常重要的,能够帮助他们...
在Android开发中,实现一个能够全屏显示并覆盖导航栏和状态栏的悬浮窗,以及在锁屏页面依然保持全屏显示,是一项涉及到系统权限、窗口管理服务和自定义视图的技术挑战。以下是对这个主题的详细解释: 1. **悬浮窗...
"android悬浮窗显示内存"是一个实现这样的功能的例子,它允许用户查看设备当前的内存使用情况,并且可以随时关闭。以下是对这个主题的详细讲解: 一、Android悬浮窗原理 Android悬浮窗是通过使用`SYSTEM_ALERT_...
由于描述中提到源码可能需要自行调试才能运行,我们将探讨一些关于Android悬浮窗开发的基础知识以及可能遇到的问题。 1. **Android悬浮窗(Floating Window)**: - 在Android中,悬浮窗通常通过实现`SYSTEM_ALERT...
首先,我们需要理解Android悬浮窗的工作原理。悬浮窗在Android中通过`WindowManager`服务来实现。`WindowManager`允许应用添加、更新和移除窗口。为了创建悬浮窗,我们需要以下步骤: 1. **权限设置**:在...
然而,随着应用程序的日益增多,设备的内存管理变得尤为重要,这正是Android悬浮窗工具CleanFloat应运而生的原因。这款小工具以其独特的水波球设计,提供了一种直观且便捷的内存清理方式,为用户带来了全新的交互...
在Android系统中,悬浮窗(Floating Window)是一种特殊...以上就是关于Android悬浮窗监视内容的主要知识点,实际开发中还需要根据具体需求进行调整和优化。理解这些概念并熟练应用,可以创建出功能丰富的悬浮窗应用。
5. **内存管理**:及时释放悬浮窗资源,防止内存泄漏。 在实际开发中,`memFloat`可能是一个实现悬浮窗功能的库或者示例项目,它可能会提供更方便的API和示例代码,帮助开发者快速实现悬浮窗功能。学习和理解这些...
首先,我们需要了解Android悬浮窗的基本原理。在Android中,悬浮窗通常通过`SYSTEM_ALERT_WINDOW`权限来实现,这是一个危险权限,自Android 6.0(API级别23)开始,应用在安装时就需要请求此权限。因此,我们需要在`...
在Android平台上,开发一款流量监控悬浮窗以实时显示网速是一项实用的功能,它可以帮助用户随时了解设备的网络传输状态。本实例将详细讲解如何实现这一功能,并修复已知的bug。 首先,我们要创建一个悬浮窗服务...
【Android项目悬浮窗实例】是Android开发中的一个重要实践,它涉及到Android系统权限、窗口管理以及UI设计等多个方面。悬浮窗通常被用作应用的辅助工具,例如音乐播放器的控制面板、聊天应用的消息提示等。下面我们...
- **系统时间**:可以通过`java.util.Calendar`或者`android.text.format.Time`类获取当前系统时间,并将其显示在悬浮窗上。定时更新时间,确保显示的是最新的时间信息。 - **网络时间**:需要使用`java.net....
3. **初始化悬浮窗**:在获取到权限后,我们需要创建一个`View`对象,该对象代表悬浮窗的布局。然后,通过`WindowManager`的`addView()`方法将这个视图添加到窗口管理器中。同时,需要传入`LayoutParams`实例,设置...
360手机卫士的悬浮窗就是这种功能的一个经典实例,提供了诸如清理内存、监控网络流量等功能。本文将深入探讨如何使用Android SDK来实现类似的效果。 首先,要实现悬浮窗,我们需要使用到`WindowManager`服务和`...
在Android系统中,悬浮窗(通常称为悬浮小部件或悬浮应用)是一种可以在用户界面顶层运行的特殊窗口,允许应用程序在其他应用之上显示内容...在学习和实践过程中,不断探索和优化,是提升Android悬浮窗开发技能的关键。
【安卓悬浮窗相关-模仿360系统的桌面悬浮窗口有大型和小型两种模式还可以检测当前系统内存】 在安卓开发中,实现悬浮窗是一项常见的需求,它可以在任何应用之上显示信息或者提供快捷操作。360系统中的桌面悬浮窗口...
首先,要创建桌面悬浮窗,我们需要使用Android系统的`WindowManager`服务。`WindowManager`允许我们添加、删除或更新在屏幕上的视图。为了获取`WindowManager`实例,我们需要在`Activity`或`Service`中调用`...
在Android开发中,创建带有悬浮窗功能的一键锁屏应用是一项常见的需求,尤其对于那些希望快速锁定设备的用户来说非常方便。本项目“带悬浮窗的一键锁屏小demo”正是这样一个实例,它适用于Android 6.0(API级别23)...
在Android编程中,实现一个悬浮窗来实时展示当前设备的内存使用情况,是一个常见的需求,尤其是在性能监控或者自定义工具类应用中。本实例通过创建一个`FloatService`服务来达到这一目标。以下是对实现过程的详细...
总结来说,创建一个Xamarin.Android悬浮框涉及到获取`WindowManager`,设置`LayoutParams`,加载自定义布局,以及处理生命周期和用户交互。通过这样的方式,开发者可以实现各种各样的悬浮框效果,提升应用的用户体验...