flag\u dim\u落后导致android oreo上的滞后

fxnxkyjh  于 2021-07-09  发布在  Java
关注(0)|答案(0)|浏览(132)

我在做什么:
我正在尝试创建一个简单的屏幕过滤器(调光器)应用程序。
我是怎么做到的:
我做了一个服务,并使用下面的代码来绘制应用程序。

@Override
public int onStartCommand(Intent intent, int flags, int startId) {

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
        LAYOUT_FLAG = WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY;
    } else {
        LAYOUT_FLAG = WindowManager.LayoutParams.TYPE_SYSTEM_OVERLAY;
    }

    WindowManager.LayoutParams params = new WindowManager.LayoutParams(
            WindowManager.LayoutParams.MATCH_CONTENT,
            WindowManager.LayoutParams.MATCH_CONTENT,
            LAYOUT_FLAG, WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS | WindowManager.LayoutParams.FLAG_DIM_BEHIND |
            WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE |
                    WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE,
            PixelFormat.TRANSLUCENT);

    params.alpha = 0.1f;
    params.dimAmount = 0.41f;

    WindowManager wm = (WindowManager) getSystemService(Context.WINDOW_SERVICE);
    LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);

    mOverlayView = inflater.inflate(R.layout.filter_layout, null);

    wm.addView(mOverlayView, params);
    return START_STICKY;
}

问题:
当我使用flag\ u dim\ u behind时,它会导致延迟,这在打开应用程序动画中非常明显。
我尝试的是:
使用的标志,如全屏标志、屏幕中的布局标志等(不起作用)
删除了后面的flag\u dim\u并尝试使用以下行自行设置颜色: mOverlayView.setBackgroundColor(getResources().getColor(R.color.light_black)); 它工作良好,没有任何滞后,但问题是,它(屏幕过滤器布局)没有覆盖整个屏幕。导航栏保持打开状态。有没有办法做到这一点?
此外,有一个应用程序在playstore这是这样做没有任何滞后或问题。
电话和操作系统:
nexus 6p(8.1奥利奥)
任何帮助或建议将不胜感激!

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题