经常,我们看到在桌面上可移动的悬浮窗,这种场景还是很多的, 像流量统计,桌面歌词等,安全软件的清理小部件

这种小部件主要是通过 WindowManager ; WindowManager.LayoutParams 这两个类来实现

调用 WindowManager 的addView(view, params)方法来添加一个悬浮窗.updateViewLayout(view,params)来更新悬浮窗参数.removeView(view)用于移除悬浮窗

WindowManager.LayoutParams 主要是用来提供参数的 其中的参数有type: 悬浮窗的类型,通常设置为2002, 即在所有程序之上.状态栏之下

flags :用于确定悬浮窗的行为

gravity : 用于确定悬浮窗的对其方式

x: 悬浮窗的横向坐标

y: 悬浮窗的纵向坐标

width: 悬浮窗的宽度

height : 悬浮窗的高度

创建悬浮窗需要添加权限:

悬浮窗布局

新建一个类继承Application,Application就是应用的入口点,写在这里,就是程序一运行,就会出来

同时,需要在清单文件的Application结点上配置名称

packagecom.example.windowmanagerdemo;importandroid.annotation.SuppressLint;importandroid.app.Application;importandroid.content.Context;importandroid.graphics.PixelFormat;importandroid.view.LayoutInflater;importandroid.view.MotionEvent;importandroid.view.View;importandroid.view.View.OnTouchListener;importandroid.view.WindowManager;importandroid.view.WindowManager.LayoutParams;public class MAppliction extendsApplication {

WindowManager mWM;

WindowManager.LayoutParams mParams;

@Overridepublic voidonCreate() {super.onCreate();

mWM= (WindowManager) this.getSystemService(Context.WINDOW_SERVICE);

mParams= newWindowManager.LayoutParams();final View mwm = LayoutInflater.from(this).inflate(R.layout.mwm, null);

mwm.setOnTouchListener(newOnTouchListener() {floatlastX, lastY;

@SuppressLint("NewApi")

@Overridepublic booleanonTouch(View v, MotionEvent event) {switch(event.getAction()) {caseMotionEvent.ACTION_DOWN:

lastX=event.getX();

lastY=event.getY();break;caseMotionEvent.ACTION_MOVE:float moveX =event.getX();float moveY =event.getY();

mParams.x+= (int) (moveX -lastX);

mParams.y+= (int) (moveY -lastY);

mWM.updateViewLayout(mwm, mParams);break;default:break;

}return true;

}

});

mParams.type=LayoutParams.TYPE_PHONE;

mParams.format=PixelFormat.RGBA_8888;

mParams.width= 50;

mParams.height= 30;

mWM.addView(mwm, mParams);

}

}

原文:http://www.cnblogs.com/BoBoMEe/p/4300096.html

android桌面悬浮窗,Android桌面悬浮窗相关推荐

  1. android多个悬浮窗口,android 添加随意拖动的桌面悬浮窗口

    用过新版本android 360手机助手都人都对 360中只在桌面显示一个小小悬浮窗口羡慕不已吧? 其实实现这种功能,主要有两步: 1.判断当前显示的是为桌面.这个内容我在前面的帖子里面已经有过介绍, ...

  2. Java安卓如何添加悬浮窗_Android桌面悬浮窗效果实现

    360手机卫士我相信大家都知道,好多人手机上都会装这一款软件,那么我们对它的一个桌面悬浮窗效果想必都不会陌生.请看下图: 首先是一个小的悬浮窗显示的是当前使用了百分之多少的内存,点击一下小悬浮窗,就会 ...

  3. 【Android 学习】实现仿360悬浮窗

    本篇博客转自郭霖的博客http://blog.csdn.net/guolin_blog/article/details/8689140 360手机卫士我相信大家都知道,好多人手机上都会装这一款软件,那 ...

  4. Android开发之仿手机卫士悬浮窗效果

    基本的实现原理,这种桌面悬浮窗的效果很类似与Widget,但是它比Widget要灵活的多.主要是通过WindowManager这个类来实现的,调用这个类的addView方法用于添加一个悬浮窗,upda ...

  5. Android实现仿360手机卫士悬浮窗效果

    大家好,今天给大家带来一个仿360手机卫士悬浮窗效果的教程,在开始之前请允许我说几句不相干的废话. 不知不觉我发现自己接触Android已有近三个年头了,期间各种的成长少不了各位高手的帮助,总是有很多 ...

  6. Android检测是否有悬浮窗,Android 获取判断是否有悬浮窗权限的方法

    现在很多应用都会用到悬浮窗,很多国产rom把悬浮窗权限加入控制了,你就需要判断是否有悬浮窗权限,然后做对应操作. Android 原生有自带权限管理的,只是被隐藏了.看android源码在androi ...

  7. Android M及以上版本系统 悬浮窗权限 的解决方案

    Android M及以上版本系统 悬浮窗权限 的解决方案 Android的窗口体系中,WindowManager占有非常重要的地位,平时我们使用悬浮窗会遇到一些权限的问题. 当 Android工程在 ...

  8. Android窗口Window的创建(悬浮窗)

    创建悬浮窗以及基于无障碍服务的窗口 关于悬浮窗的创建 启动悬浮窗 关于前台服务 启动服务 无障碍窗口 知识点 参考链接 关于悬浮窗的创建 首先需要获取WindowManager WindowManag ...

  9. android用服务建立悬浮窗,Android悬浮窗用法总结

    转载请注明出处:Android悬浮窗用法总结 最近项目里用到了悬浮窗,在这里做一下总结. WindowManager 悬浮窗主要是通过WindowManager这个类实现的,这个类有3个方法: voi ...

最新文章

  1. 一球从M米高度自由下落,每次落地后返回原高度的一半,再落下。 它在第N次落地时反弹多高?共经过多少米? 保留两位小数...
  2. linux动态链接库软件,Linux 动态链接库
  3. C语言,为什么动态内存分配申请后,还要再释放?
  4. 7-6 红豆生南国 (25 分)
  5. 前沿技术分享,让你在算法圈“技”高一筹
  6. 组装高性能服务器配置,高性能计算服务器参考配置需求.doc
  7. VB中Excel 2010的导入导出操作
  8. linux 常见基础命令
  9. smartupload 路径不存在_使用SmartUpload上传文件不成功
  10. WinForm界面开发
  11. 【NHOI2019】初中组区赛解题思路
  12. matlab 拟合优度检验,卡方拟合优度检验在教学中的应用及Matlab实现_刘泽显
  13. len函数python返回值类型_python的len函数为什么报错
  14. 双非硕士211,阿里(蚂蚁)技术四面:技术一面+技术二面+主管三面+HR面
  15. lopa分析_LOPA分析法之独立保护层浅析
  16. 云台山茶旅集团各分子版块日新月(2月20日)
  17. Mac使用Docker安装artemis
  18. 【5G系列】MICO学习总结(1)
  19. 前端必学的CSS3波浪效果演示
  20. Splitter Control for Dialog

热门文章

  1. 开启codelite的c++11
  2. 在职场中,你这一生能够混到哪个“层次”,取决于这三个人
  3. HP-UX 11.31 安装RAC 添加共享磁盘的问题(两种办法)
  4. 聚焦安防应用 6 6华强与您相约郑州五洲酒店
  5. ConstraintLayout 2.0 新特性 MotionLayout 制作炫酷动画
  6. 深入浅出matplotlib(12):椭圆示意图
  7. SpringCloud gateway (史上最全)
  8. CoppeliaSim添加ROS自定义消息类型
  9. php备忘录,备忘录模式及其php实现
  10. Retrofit的好处