1. 使用悬浮框

2. 具体实现

package com.pandans.hnairexam;

import com.pandans.sunshine.provider.SunShineDB.BookT;

import android.app.Application;

import android.content.Context;

import android.graphics.PixelFormat;

import android.util.DisplayMetrics;

import android.view.Gravity;

import android.view.WindowManager;

import android.view.WindowManager.LayoutParams;

public class ExamApplication extends Application {

private WindowManager.LayoutParams windowParams = null;

public WindowManager.LayoutParams getWindowParams() {

if (windowParams == null) {

createWindowParams();

}

return windowParams;

}

private WindowManager.LayoutParams createWindowParams() {

windowParams = new WindowManager.LayoutParams();

windowParams.type = WindowManager.LayoutParams.TYPE_PHONE;

windowParams.flags = WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE

| WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL

| WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH;

windowParams.format = PixelFormat.TRANSLUCENT;

/*

* 注意,flag的值可以为: 下面的flags属性的效果形同“锁定”。 悬浮窗不可触摸,不接受任何事件,同时不影响后面的事件响应。

* LayoutParams.FLAG_NOT_TOUCH_MODAL 不影响后面的事件

* LayoutParams.FLAG_NOT_FOCUSABLE 不可聚焦 LayoutParams.FLAG_NOT_TOUCHABLE

* 不可触摸

*/

// 调整悬浮窗口至左上角,便于调整坐标

windowParams.gravity = Gravity.LEFT | Gravity.TOP;

// 以屏幕左上角为原点,设置x、y初始值

windowParams.x = 0;

windowParams.y = 0;

setDisplay(windowParams);

return windowParams;

}

/**

* 拖动更改位置

*

* @param x

* @param y

*/

public void updateWindows(int x, int y) {

windowParams.y = y;

((WindowManager) getSystemService(WINDOW_SERVICE)).updateViewLayout(

mFloatView, windowParams);

}

public void setDisplay(WindowManager.LayoutParams params) {

DisplayMetrics dm = new DisplayMetrics();

((WindowManager) getSystemService(WINDOW_SERVICE)).getDefaultDisplay()

.getMetrics(dm);

params.width = LayoutParams.MATCH_PARENT;

params.height = (int) (dm.heightPixels * 0.4);

//params.height = 200;

}

private PFloatView mFloatView;

public void createView(Context cnt) {

if (mFloatView == null) {

mFloatView = new PFloatView(cnt);

mFloatView.setSpinnerData(cnt, getContentResolver().query(

BookT.CONTENT_URI, null, null, null, null));

((WindowManager) getSystemService(WINDOW_SERVICE)).addView(

mFloatView, getWindowParams());

}

}

public void clearView() {

if (mFloatView != null) {

((WindowManager) getSystemService(WINDOW_SERVICE))

.removeView(mFloatView);

mFloatView = null;

}

}

}

实际使用过程中发现miui的机器无法弹出悬浮窗,经查证,小米有做个权限,默认悬浮窗都不能弹出。

解决:

1、在桌面找到系统应用“安全中心”

轻击一下即进入了此应用

2、点击右下角的“授权管理”进入

点击第二项“应用权限管理”就进入了详细的管理界面

3、右滑进入权限管理,在最下方找到悬浮窗选修,点击进入

4. 点击图标勾选允许

原文:http://www.cnblogs.com/pandans/p/4576708.html

android 悬浮窗 miui,MIUI显示悬浮窗相关推荐

  1. android 悬浮窗口禁止横屏显示,悬浮窗强制设置屏幕方向|App开发交流区|研发交流|雨滴科技技术论坛 - Powered by Discuz!...

    最近在做平板上的一个程序,需要配合中通的app来控制扫描与分拣机的转动.然后中通的程序在平板上运行有一个问题, 就是app里设置了强制竖屏,不能跟随系统旋转应用屏幕方向,然后把系统里的屏幕方向写死,虽 ...

  2. 小米手机如何显示悬浮窗

    每个android开发者最蛋疼的事情估计应该就是各种手机的适配兼容的问题了,特别是适配小米和魅族的,没办法,别人 有技术就是任性,我们只能忧伤的慢慢搞去. 今天做的应用悬浮窗在小米上不能出现(放在se ...

  3. iOS 悬浮球效果实现,悬浮按钮,拖拽,贴边,隐藏,显示,旋转屏幕适配

    1.悬浮球与设备刘海的安全距离 无论是横屏还是竖屏,悬浮球距离有刘海的一边会留出安全距离 设备方向的上下两边,也有安全距离 2.贴边吸附方向和距离 悬浮球只能贴设备方向的左右两边,需要贴上下两边自行调 ...

  4. Android无需权限显示悬浮窗, 兼谈逆向分析app

    前言 最近UC浏览器中文版出了一个快速搜索的功能, 在使用其他app的时候, 如果复制了一些内容, 屏幕顶部会弹一个窗口, 提示一些操作, 点击后跳转到UC, 显示这个悬浮窗不需要申请android. ...

  5. Android越过悬浮窗权限显示悬浮窗

    文/Shawon(简书作者) 原地址 http://www.jianshu.com/p/167fd5f47d5c ,经验证,此方法可以越过大多数手机的悬浮球权限. 但是对MIUI8无效,MIUI8中应 ...

  6. WindowManager解析(二)Android悬浮框无法弹出输入法的原因和无需权限显示悬浮窗

    Android悬浮框无法弹出输入法 最近要研究悬浮窗方面的东西,遇到一个问题,我的悬浮窗里面有一个输入框,但是不弹出输入法,后来找到一个方法: 在WindowManager的实例获取方式不对,之前是这 ...

  7. android仿照360壁纸照片显示特效,Android仿360桌面手机卫士悬浮窗效果

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

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

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

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

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

  10. Android 可任意位置移动的悬浮窗

     1.悬浮窗权限申请: if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.M) {if (!Setti ...

最新文章

  1. ios 常见性能优化
  2. 国内外最好用的9大工作任务管理软件
  3. 将获取到的JSONObject和JSONArray转换为实体对象
  4. php进入目录,php文件,文件夹(目录)操作函数总结
  5. Linux NAPI/非NAPI
  6. 【编程6】贪吃蛇游戏(python+pygame)
  7. PHPUnit-附录 A. 断言 (assert)
  8. 阿里云linux上安装与配置Mysql
  9. 牛客16662 津津的储蓄计划
  10. 使用Express开发小说API接口服务1.0(二)
  11. 使用代理,调用json-server的服务接口
  12. 聚集索引表插入数据和删除数据的方式是怎样的
  13. linux随手笔记(Centos为主)
  14. python : 读取csv最快的Datatable的用法
  15. python获取像素值_从PIL获取像素值列表
  16. 计算机网络-----网络编程
  17. 双引号后面要加句号吗_双引号和句号的位置
  18. 计算机启动时检测硬盘,电脑总是启动检测硬盘怎么办
  19. EB Tresos安装错误 No Package
  20. 这些行业已经开始用数据挖掘了,我们的前途光明

热门文章

  1. python中文版免费下载-Python3.8.3下载
  2. 十大默默无闻技术之父
  3. Day01—— 幂和对数
  4. 一个SQL语句引发的ORA-00600错误排查(一) (r9笔记第64天)
  5. introduction(html)(1-26)
  6. Echarts笔记:全国主要城市空气质量地图
  7. 实习-VPN表单-前端后端数据库-1
  8. 字符集及八种编码对汉字和字母所占字节数
  9. 6-30 Read Esc Chars (30分)(函数)
  10. 正待等待暴雪服务器响应,暴雪玩乌龙,TBC怀旧服B测服务器未部署,或将增设跃迁兽坐骑...