美文网首页
WindowManager.LayoutParams.y设置为负

WindowManager.LayoutParams.y设置为负

作者: 花花是男神 | 来源:发表于2019-05-09 17:49 被阅读0次

有个需求是要做一个悬浮窗,从屏幕顶端外淡入飞进来,这是考虑到用WindowManager来实现。期间遇到个问题,无论如何都无法将View在WindowManager.addVIew的时候初始化在屏幕顶端外面。及设置WindowManager.LayoutParams.y为负值也没有用。

经过排查分析,原来在使用WindowManager显示View的时候,如果 WindowManager.LayoutParams.Type的层级值大于2007(TYPE_PRIORITY_PHONE)这时无论如何View都不可能绘制在屏幕之外。及WindowManager.LayoutParams.y设置为负值也没有用,效果最小值为0;

所以,如果有此需求

  • 1、需排查flags是否为WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS 允许在屏幕外绘制
  • 2、WindowManager.LayoutParams.Type的层级值是否大于2007(TYPE_PRIORITY_PHONE
 windowManager = (WindowManager) context.getApplicationContext().getSystemService(Context.WINDOW_SERVICE);
        layoutParams = new WindowManager.LayoutParams();
        layoutView = (LinearLayout) LayoutInflater.from(context).inflate(R.layout.floatview, null);

        // 设置图片格式,效果为背景透明 (否则为黑色)
        layoutParams.format = PixelFormat.RGBA_8888;
        layoutParams.type = WindowManager.LayoutParams.TYPE_PRIORITY_PHONE;
        layoutParams.flags = WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE
                | WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS;

        layoutParams.gravity = Gravity.TOP;

        layoutParams.x = 0;
        layoutParams.y = -DisplayUtil.dip2px(weakReferenceContext.get(), 200);

        layoutParams.width = 1080;
        layoutParams.height = DisplayUtil.dip2px(weakReferenceContext.get(), 200);

        windowManager.addView(layoutView, layoutParams);

相关文章

  • WindowManager.LayoutParams.y设置为负

    有个需求是要做一个悬浮窗,从屏幕顶端外淡入飞进来,这是考虑到用WindowManager来实现。期间遇到个问题,无...

  • HTML如何顶部居中固定菜单Bar

    设置 固定布局 固定菜单栏在顶部, 并且通过 设置margin-left为菜单栏宽度负一半 来调整居中 水平居中,...

  • 仿FlipBoard app效果2 setting页面

    仿这个写的 布局文件底部的子类,通过设置marginbottom为负的高度,使其不可见 实体类data class...

  • 医院的新风系统与家用的一样吗?

    火神山隔离病房内新风为负压新风,即排风量大于新风量的新风系统。负压新风需要在排风端设置高效过滤器,保证排风安全,同...

  • 均线战法

    选票标准 每根线的正角度越大,越强,负角度越大,越弱 均线设置 为5、10、20、30、60、120、250以上可...

  • 能量为负

    波澜不惊的生活,无处可述。

  • 为正为负

    导向善的文化为正知正见,反之为无明,也是苦之源。 如果连因果都不相信,谈论多高深的佛法都只是谈论者的装饰品而已。

  • 勇气为负

    记得刚毕业的时候,录用培训时讲师一直在讲工作内容。好像从8点半到11点一直没有停过,而且全程没有休息。我当时忍着想...

  • 能量为负

    突然发火了,把心理的负能量表达出来了,毫无顾忌地表达出来,不理性也好,无厘头也罢,真心觉得很压抑,很郁闷,凭什么呢...

  • 记录特别的春节(二)

    2020.02.05 正月十二 上一篇被系统设置为仅自己可看,貌似我也没有传递什么负能量,懒的想了,反正是记录,没...

网友评论

      本文标题:WindowManager.LayoutParams.y设置为负

      本文链接:https://www.haomeiwen.com/subject/tmdgoqtx.html