Android 在其他应用上悬浮显示View
一个特殊需求,当打开系统wifi设置界面时候,系统界面左上角自带返回按钮,想要的功能是不能点击此返回按钮回到系统设置
界面。
此段代码打开wifi设置界面时,会在左下角和右下角多了返回和下一步按钮,点击这两个按钮都会关闭掉当前的wifi设置界面。
(基于Android 4.2,4.4版本测试)
Intent intent = new Intent();
intent.setAction(Settings.ACTION_WIFI_SETTINGS);
intent.setAction("android.net.wifi.PICK_WIFI_NETWORK");
intent.putExtra("extra_prefs_show_button_bar", true); //携带上一步和下一步按钮
intent.putExtra("wifi_enable_next_on_connect", true);
intent.putExtra("extra_prefs_set_back_text", "返回");
startActivity(intent);
开启WIFI 设置界面如下
尝试在Intent中携带各种参数都无效之后,想到在其他应用上显示窗口。搜索了各种方式之后,具体实现方式: 开启一个Service,在service 中获取当前窗体的WindowManager.addView(View view) 添加一个View,通过stopService removeView 来移除view 具体通过开启的activity 生命周期方法来控制显示隐藏
Service 具体实现:
public class ViewService extends Service {private WindowManager windowManager;private Button button;@Overridepublic IBinder onBind(Intent intent) {return null;}@Overridepublic void onCreate() {super.onCreate();showOver();}@Overridepublic void onDestroy() {super.onDestroy();windowManager.removeView(button);}private void showOver() {button = new Button(this);button.setBackgroundColor(Color.BLACK);windowManager = (WindowManager) getSystemService(WINDOW_SERVICE);WindowManager.LayoutParams layoutParams = new WindowManager.LayoutParams();layoutParams.type = WindowManager.LayoutParams.TYPE_PHONE;layoutParams.width = 70;layoutParams.height = 50;layoutParams.x = 20 ;layoutParams.y = 20 ;layoutParams.gravity = Gravity.LEFT | Gravity.TOP ;layoutParams.flags = WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE;layoutParams.format = PixelFormat.RGBA_8888 | PixelFormat.TRANSLUCENT;windowManager.addView(button, layoutParams);}}
添加权限:
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
添加一个黑色的Button之后(左上角)
Android 在其他应用上悬浮显示View相关推荐
- 「Android渲染」图像是怎样显示到屏幕上的?
我们每天花很多时间盯着手机屏幕,不知道你有没有好奇过: 手机屏幕上的这些东西是怎么显示出来的? 这时候来了一位Android程序员(当然也可以是iOS或者是前端程序员)说: 这里显示的其实是一个Vie ...
- Android AppCompatCheckBox在低版本上不显示问题
遇到一个问题,AppCompatCheckBox 在低版本显示不出来,但是在高版本可以显示出来.但是呢,应用的其他页面的AppCompatCheckBox 在同样的低版本手机上可以显示出来. 如下: ...
- android 逐字动画,Android实现文本逐字显示View(类似rpg游戏人物对话,文本逐字显示)...
前面好多篇文章都是Android Studio.源码编译.ndk等相关教程,今天敲一敲代码,不然都生锈了哈_. 来个古装动画美图,缓解大家疲劳的眼睛...(话说有木有人知道这是谁???) Paste_ ...
- Android在ImageView上直接显示网络图片
亲测可用,若有疑问请私信 在原生的ImageView中,没有一个方法是可以直接显示网络的图片的,当我们经常需要显示网络图片时,每次都有一大堆的操作,这会很麻烦,今天就教大家在ImageView上轻松显 ...
- android 7.0平台客制化虚拟导航按键(隐藏NavigationBar,上滑显示NavigationBar)
如图,需求是增加一个按钮可以隐藏NavigationBar,上滑显示NavigationBar. 参考文章: Android 8.1平台客制化虚拟导航按键 Android 7.0 虚拟按键(Navig ...
- com.android.rrpgdemo,Android实现文本逐字显示View(类似rpg游戏人物对话,文本逐字显示)...
8种机械键盘轴体对比 本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选? 前面好多篇文章都是Android Studio.源码编译.ndk等相关教程,今天敲一敲代码,不然都生锈了哈^_^. 来个 ...
- android界面布局题,【填空题】Android 系统中, 用于定义布局显示在界面上的风格。...
[填空题]Android 系统中, 用于定义布局显示在界面上的风格. 更多相关问题 [37]A.anotherB.each otherC.the otherD.one another Tabor ma ...
- android学习——popupWindow 在指定位置上的显示
先看效果图,免得浪费大家时间,看是不是想要的效果 . 直接上代码 ,核心方法. private void showPopupWindow(View parent) { if (popupWindow ...
- android 泰文ttf字体,如何在Android上正确显示泰语diactirics?
简短的序言.泰语字母有可能出现在辅音上方的元音符号,并且在辅音上方也存在变音符号(DS).当元音和DS出现时,它们出现一个在另一个之上,所以元音被设置在辅音之上并且DS被设置在元音之上.如何在Andr ...
最新文章
- 判断条件为空时需要注意
- [Hibernate系列—] 2. 创建SessionFactory 与 Session
- 配置Andriod环境变量
- Redis的 key 和 value大小限制
- 网络流--最大流--POJ 1273 Drainage Ditches
- 使用面向对象(OO)的思想,实现循环输入多个会员的信息,根据会员编号,查找会员积分
- python入门——P37类和对象:面向对象编程
- SCCM 2012 R2 从入门到精通 Part8 软件部署
- ERROR: function group_concat(character varying) does not exist
- 启用了文件索引,干脆连文件都找不到了
- 阿里字体小图标的使用
- 【读心术】之微表情——《Lie to me 》摘自百度百科
- python 身份证实名认证
- Java job interview:Java对象持久化的新的规范JDO
- matlab中的图片输出和设定
- 《计算机网络》复习第一章(大部分内容来自课本,部分来自个人补充)
- 一文理解UART通信
- 【归档】爬取马蜂窝景点信息(含源代码)
- 带你渐入佳境,一文捋清协程
- python hadoop wordcount_在Hadoop上用Python实现WordCount
热门文章
- thinkphp5消息队列(think-queue)
- jfinal mysql_jfinal3.5连接mysql8
- Python+Pycharm+Anaconda安装步骤详解
- Lombok-全面详解(学习总结---从入门到深化)
- [绍棠] Vue中this.$nextTick()实现原理及使用场景学习总结
- OceanBase 架构初探
- 个人简介 - HTML/CSS简单页面实例
- Linux输入绝对值 (Missing $ inserted,Missing delimiter)
- 计算机的aero界面是一种,win7系统Aero特效是什么
- linux 设备直通,使用virtualbox运行物理硬盘的系统 USB设备直通,支持网银、刷...