发表于 2013-6-24 20:26:57  | 只看该作者

一、前言:

我手机从来不装这些东西,不过,有次看到同事的android手机上,有个QQ管家在桌面上浮着,同事拖动管家时,管家就变成一只鸟,桌面下方还有个弹弓,桌面顶部有只乌鸦,把管家也就是鸟拖动到弹弓那,然后,松手,鸟就飞出去。这个过程是动画过程,做的事,实际上是清楚内存。

二:原理:

其实,没什么原理,用到的就是WindowManager以及WindowManager.LayoutParams,对这个LayoutParams做文章,当设置为属性后,然后,创建一个View,将这个View添加到WindowManager中就行。

  1. package com.chris.floats.window;
  2. import android.os.Bundle;
  3. import android.util.DisplayMetrics;
  4. import android.view.Gravity;
  5. import android.view.WindowManager;
  6. import android.app.Activity;
  7. import android.content.Context;
  8. public class MainActivity extends Activity {
  9. private static WindowManager mWindowMgr = null;
  10. private WindowManager.LayoutParams mWindowMgrParams = null;
  11. private static FloatsWindowView mFloatsWindowView = null;
  12. @Override
  13. protected void onCreate(Bundle savedInstanceState) {
  14. super.onCreate(savedInstanceState);
  15. setContentView(R.layout.activity_main);
  16. }
  17. /*
  18. * 显示应用主界面时,去除悬浮层
  19. */
  20. @Override
  21. public void onWindowFocusChanged(boolean hasFocus) {
  22. if(hasFocus){
  23. if(mFloatsWindowView != null){
  24. mWindowMgr.removeView(mFloatsWindowView);
  25. mFloatsWindowView = null;
  26. }
  27. }else{
  28. getWindowLayout();
  29. }
  30. }
  31. private void initParams(){
  32. DisplayMetrics dm = getResources().getDisplayMetrics();
  33. mWindowMgrParams.x = dm.widthPixels - 136;
  34. mWindowMgrParams.y = 300;
  35. mWindowMgrParams.width = 136;
  36. mWindowMgrParams.height = 136;
  37. }
  38. private void getWindowLayout(){
  39. if(mFloatsWindowView == null){
  40. mWindowMgr = (WindowManager)getBaseContext().getSystemService(Context.WINDOW_SERVICE);
  41. mWindowMgrParams = new WindowManager.LayoutParams();
  42. /*
  43. *  2003 在指悬浮在所有界面之上
  44. *  (4.0+系统中,在下拉菜单下面,而在2.3中,在上拉菜单之上)
  45. */
  46. mWindowMgrParams.type = 2003;
  47. mWindowMgrParams.format = 1;
  48. /*
  49. * 代码实际是wmParams.flags |= FLAG_NOT_FOCUSABLE;
  50. * 40的由来是wmParams的默认属性(32)+ FLAG_NOT_FOCUSABLE(8)
  51. */
  52. mWindowMgrParams.flags = 40;
  53. mWindowMgrParams.gravity = Gravity.LEFT | Gravity.TOP;
  54. initParams();
  55. mFloatsWindowView = new FloatsWindowView(this);
  56. mWindowMgr.addView(mFloatsWindowView, mWindowMgrParams);
  57. }
  58. }
  59. }

复制代码

链接地址:http://www.apkbus.com/android-121930-1-3.html

Android类似360,QQ管家那样的悬浮窗 for android3相关推荐

  1. Android类似360,QQ管家那样的悬浮窗

    一.前言: 我手机从来不装这些东西,不过,有次看到同事的android手机上,有个QQ管家在桌面上浮着,同事拖动管家时,管家就变成一只鸟,桌面下方还有个弹弓,桌面顶部有只乌鸦,把管家也就是鸟拖动到弹弓 ...

  2. android 360 悬浮窗口,Android实现类似360,QQ管家那样的悬浮窗

    一.前言: 我手机从来不装这些东西,不过,有次看到同事的android手机上,有个QQ管家在桌面上浮着,同事拖动管家时,管家就变成一只鸟,桌面下方还有个弹弓,桌面顶部有只乌鸦,把管家也就是鸟拖动到弹弓 ...

  3. Android实现类似360,QQ管家那样的悬浮窗

    一.前言:  我手机从来不装这些东西,不过,有次看到同事的android手机上,有个QQ管家在桌面上浮着,同事拖动管家时,管家就变成一只鸟,桌面下方还有个弹弓,桌面顶部有只乌鸦,把管家也就是鸟拖动到弹 ...

  4. android 仿qq好友动态,Android UI仿QQ好友列表分组悬浮效果

    本文实例为大家分享了Android UI仿QQ好友列表分组悬浮效果的具体代码,供大家参考,具体内容如下 楼主是在平板上測试的.图片略微有点大,大家看看效果就好 接下来贴源代码: PinnedHeade ...

  5. android中检测网速,Android 流量与网速监测(悬浮窗) 源码

    [实例简介] 对应博文链接:http://blog.csdn.net/yyh352091626/article/details/50599621 Android 实现流量与网速监测(悬浮窗) 源码. ...

  6. Android聊天室源码开发,悬浮窗的实现及封装思路

    为了实现语音聊天室源码的多场景应用,悬浮小窗口在语音聊天室源码开发中还是比较常见的需求,主要是指用户在语音连麦过程中打开其它界面或者退到桌面时语音连麦不会中断且会有一个悬浮小窗口位于最上层,接下来我们 ...

  7. Android仿腾讯手机管家实现桌面悬浮窗小火箭发射的动画效果

    功能分析:  1.小火箭游离在activity之外,不依附于任何activity,不管activity是否开启,不影响小火箭的代码逻辑,所以小火箭的代码逻辑是要写在服务中:  2.小火箭挂载在手机窗体 ...

  8. Android 自定义水波球清理内存的悬浮窗小工具

    一.概述 现在一些手机管家都会有一个用来清理内存的悬浮窗小工具,感觉挺实用的,就自己做了一个.首先介绍一下这个工具的功能,除了可以清理内存,还有调节手机屏幕亮度.手电筒.无线网.移动数据.蓝牙.GPS ...

  9. android动态申请悬浮框权限,Android动态权限申请工具(包括悬浮窗)

    为了保证APP正常运行,动态权限申请是android比较常用的功能,由于每次都需要做申请.等待返回还有拒绝反馈等操作,比较麻烦,所以集成了一个比较简单的动态权限申请库 集成方法: Step 1. Ad ...

最新文章

  1. 手工构建ISO的基本步骤
  2. 模拟生态系统-自己编写生命
  3. mysql 列出表_[MySQL优化1]centos中MySQL列出所有表
  4. VS调试dll详细过程记录
  5. JS替换空格回车换行符
  6. 蓝桥杯java第八届第三题--承压计算
  7. C语言函数class,C语言--7-class-while和函数.ppt
  8. 为什么说Swift正在颠覆整个互联网生态?
  9. 【LeetCode笔记】215. 数组中的第K个最大元素(Java、快排、堆排、并发快排)
  10. 【Java】IntegerCache的妙用和陷阱
  11. Vue实现按钮和文本框的切换
  12. 魔乐手机管家V2.0内测版惊艳亮相--Android软件
  13. SystemVue介绍
  14. 炭足迹计算机的火车好处,碳足迹与碳足迹计算器.pdf
  15. CV笔记5:图像分割之最大类间方差法、自适应阈值分割(基于python-opencv实现)
  16. 斯蒂文斯理工学院计算机排名,2020年斯蒂文斯理工学院QS世界排名
  17. 操作系统之哲学原理 第2版
  18. 机器学习第四章之逻辑回归模型
  19. 网卡地址能查计算机位置吗,如何通过网卡地址查找到丢失的电脑
  20. Jest 单元测试快速入门

热门文章

  1. 三伏高温预警丨你不知道的防暑秘诀
  2. 国内7款API供应平台功能对比及详细介绍
  3. Worthington胰蛋白酶的物化性质及特异性
  4. 数据分析(二)数据预处理
  5. module,exports,require的模块化应用
  6. 实战HackTheBox里的Heist
  7. 华为手机你知道几种截屏方式呢?其实有7种,看看你用过几个?
  8. Android 模拟器genymotion安装,eclipse 插件
  9. 【机器学习】多项式回归的思想以及在sklearn中使用多项式回归(含示例+代码)
  10. lightGBM 训练rank记录