悬浮框,View置顶
来源:互联网 发布:淘宝刷单违规怎么处理 编辑:程序博客网 时间:2024/05/15 01:41
今天写了个小demo,主要功能:从A应用打开B应用,打开B只会弹出一个View提示。
其实当时想到,其他的App又不是我写的,我怎么能弹出View呢。后来想想也不难只是我的思路错了。
主要就是获取WindowManager就好了;
发个图,打开了一个叫"萤Wifi的软件",UI很丑,不要吐槽啊,功能能看就好了
权限别拉下了:
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
代码如下
package com.example.dialogdemo;import android.app.Activity;import android.content.ActivityNotFoundException;import android.content.Context;import android.content.Intent;import android.os.Bundle;import android.util.Log;import android.view.Gravity;import android.view.LayoutInflater;import android.view.View;import android.view.View.OnClickListener;import android.view.WindowManager;public class MainActivity extends Activity {private String pkg = "XXXXXXXXXXX"; //应用包名private String TAG = "MainActivity";@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);findViewById(R.id.button1).setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {startApp(MainActivity.this, pkg);new MyThread().run();}});}private class MyThread extends Thread {@Overridepublic void run() {super.run();try {Thread.sleep(4 * 1000);} catch (InterruptedException e) {e.printStackTrace();}creatDialog();}}private void creatDialog() {// 创建LayoutParamsWindowManager.LayoutParams layoutParams = new WindowManager.LayoutParams();// 设置窗口的类型layoutParams.type = WindowManager.LayoutParams.TYPE_SYSTEM_ALERT | WindowManager.LayoutParams.TYPE_SYSTEM_OVERLAY;// 设置行为选项layoutParams.flags = WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL | WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE;// 设置透明度layoutParams.alpha = 80;layoutParams.gravity = Gravity.CENTER;// 设置宽高layoutParams.width = WindowManager.LayoutParams.WRAP_CONTENT;layoutParams.height = WindowManager.LayoutParams.WRAP_CONTENT;// 添加到View到窗口final WindowManager windowManager = (WindowManager) getApplicationContext().getSystemService(WINDOW_SERVICE);// 创建需要添加的Viewfinal View view = LayoutInflater.from(this).inflate(R.layout.dialog_, null);view.findViewById(R.id.button1).setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {windowManager.removeView(view);}});windowManager.addView(view, layoutParams);}/** * 启动APP * * @param context * @param pkg */public void startApp(Context context, String pkg) {try {Intent intent = context.getPackageManager().getLaunchIntentForPackage(pkg);context.startActivity(intent);} catch (ActivityNotFoundException e) {Log.e(TAG, "APP Error:" + e.getMessage());}catch (Exception e) {Log.e(TAG, "APP Error:" + e.getMessage());}}}就这样不发Demo了,这个很简单。好像小米不行,小米的设置里有个悬浮框显示或者不显示的设置,无力吐槽。
0 0
- 悬浮框,View置顶
- Android悬浮窗的实现--可以置顶,可以设置优先级的view
- 页面置顶的悬浮按钮
- Android菜单控件置顶悬浮
- 复杂布局置顶悬浮,CoordinatorLayout
- 自定义Toast,悬浮view
- 悬浮view覆盖状态栏
- collection view headerview 悬浮
- jq实现页面悬浮置顶按钮
- Android Listview 滑动时置顶悬浮效果
- 自定义ScrollView,实现导航条悬浮置顶
- Android实现滑动悬浮置顶效果
- Android仿美团订单悬浮view
- 为recyclerview添加悬浮view
- Android 滑动悬浮置顶效果的新实现
- ios开发-设置内容置顶,状态栏悬浮可见
- listView一键置顶,刷新加载,悬浮按钮
- Android实现滑动悬浮置顶(二)采用改写Scroview实现
- 操作系统(四)--基础
- 跨平台框架Cordova 命令行简介(CLI)
- 嘲笑
- 各种分布式文件系统的比较
- 集线器与网桥的理解
- 悬浮框,View置顶
- android基础学习之parcelable的简单使用
- 第五周项目二——对象作为数据成员
- spring中配置hibernate二级缓存
- 朋友圈
- Linux tmux 插件的使用
- 所谓幸福
- android WebView(五)WebChromeClient
- django的request,response,session的常用方法函数