首页 > 其他分享 >搭建直播平台,Android开发之禁止下拉通知栏的方法

搭建直播平台,Android开发之禁止下拉通知栏的方法

时间:2023-01-11 14:37:28浏览次数:43  
标签:LayoutParams WindowManager int 直播 import Android 搭建 localLayoutParams view

搭建直播平台,Android开发之禁止下拉通知栏的方法

思路:在状态栏上覆盖一层透明view,点击时,直接消费掉,禁止继续往下传递,接触不到状态栏,就拉不出来,比较笨的一个办法,但是也挺有效

 

废话说的不少了,上代码把:

 


//禁止下拉
private void UnDropDown() {
    manager = ((WindowManager) getApplicationContext()
            .getSystemService(Context.WINDOW_SERVICE));
    WindowManager.LayoutParams localLayoutParams = new WindowManager.LayoutParams();
    localLayoutParams.type = WindowManager.LayoutParams.TYPE_SYSTEM_ERROR;
    localLayoutParams.gravity = Gravity.TOP;
    localLayoutParams.flags = WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE |
            // this is to enable the notification to recieve touch events
            WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL |
            // Draws over status bar
            WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN;
    localLayoutParams.width = WindowManager.LayoutParams.MATCH_PARENT;
    localLayoutParams.height = (int) (50 * getResources()
            .getDisplayMetrics().scaledDensity); //50高度这边我是固定死了,也可以动态获取状态栏高度,然后赋值
    localLayoutParams.format = PixelFormat.TRANSPARENT;
    view = new CustomViewGroup(this);
    manager.addView(view, localLayoutParams);
}

CustomViewGroup 代码:

 


import android.content.Context;
import android.util.Log;
import android.view.MotionEvent;
import android.view.ViewGroup;
public class CustomViewGroup extends ViewGroup {
    public CustomViewGroup(Context context) {
        super(context);
    }
    @Override
    protected void onLayout(boolean changed, int l, int t, int r, int b) {
    }
    @Override
    public boolean onInterceptTouchEvent(MotionEvent ev) {
        //直接消费,不向下传递
        return true;
    }
}

 

 不要忘记销毁

 


@Override
protected void onDestroy() {
    super.onDestroy();
    if (view != null) {
        WindowManager manager = ((WindowManager) getApplicationContext().getSystemService(Context.WINDOW_SERVICE));
        manager.removeView(view);
    }
}

 

 以上就是 搭建直播平台,Android开发之禁止下拉通知栏的方法,更多内容欢迎关注之后的文章

 

标签:LayoutParams,WindowManager,int,直播,import,Android,搭建,localLayoutParams,view
From: https://www.cnblogs.com/yunbaomengnan/p/17043591.html

相关文章

  • 直播平台软件开发,Android 10 拍照和相册选择
    直播平台软件开发,Android10拍照和相册选择<manifestxmlns:android="http://schemas.android.com/apk/res/android"  package="com.fhx.imagecommit">   <uses......
  • 直播软件app开发,删除主页搜索框
    直播软件app开发,删除主页搜索框packages/apps/Launcher3/src/com/android/launcher3/Launcher.java增加函数isQsbDisabled,用于判断是否删除搜索栏,修改返回值即可设置......
  • 我的Hexo博客搭建记录,从入门到进阶
    咕,我的个人博客开站啦.目前基于hexo+github配置截止到2023年1月10日,我搭建好这个博客有好几天了,最近也忙着在增改博客的功能.我尽量用简单的语言,记录一下我的工作,如......
  • docker搭建zerotier-moon
    docker搭建zerotier-moon生成容器命令如下dockerrun--namezerotier-moon-d--restartalways--cap-add=NET_ADMIN--cap-add=SYS_ADMIN--device=/dev/net/tun-p......
  • 直播美颜SDK的功能实现流程——美白、磨皮
    时下,很多开发者和技术发烧友想要自主开发直播美颜SDK,但受限于技术原因导致进度受阻,下文小编总结了直播美颜SDK美白与磨皮功能的实现流程,阅读时间大约五分钟。众所周知,一套完......
  • Nacos 源码环境搭建
    最近在学习nacos,通过调式源码查看服务注册和发现流程和原理,本地部署naos源码需要一定的步骤,本文主要做nacos源码部署。nacos版本:2.1.1下载源码从github上下载源码到本......
  • android jni静态注册和动态注册
    静态注册对于静态注册的jni函数而言,jni函数签名名称要与java层对应的函数名称一一对应。当一个java类被加载时会调用LoadMethod将其所有的方法也都加载到虚拟机中,并调用Li......
  • Linux 系统中搭建Beego开发环境
    工欲善其事必先利其器。在gopath的上一级目录执行gomodinitgithub.com/beego进入到gopath路径下执行 goget-ugithub.com/beego/beego/v2和 goget-ugithub.c......
  • android11 keymaster4 和 keymaster3 接口差异点
    最近在尝试升级optee的keymaster3实现到keymaster4。记录下升级过程中的方法和一些坑,便于回溯。keymaster源码:https://github.com/linaro-swg/kmgk基于这份源码,basedan......
  • H5直播技术起航
    作者:京东科技吴磊音视频基本概念视频格式就是通常所说的.mp4,.flv,.ogv,.webm等。简单来说,它其实就是一个盒子,用来将实际的视频流以一定的顺序放入,确保播放的有序和完整......