我有一个Android应用,需要一个图象,模糊的图像,去除模糊基于掩模和施加最终层(不相关)。最后两个步骤(基于蒙版消除模糊并应用最后一层)重复进行,每次使用一个新蒙版(150个蒙版)。
输出get绘制在画布(SurfaceView)上。这样,应用程序可以有效地创建具有动画模糊效果的图像视图。
所有这些图像处理步骤都是使用RenderScript实现的。
我将第1步的代码省略掉,使图片模糊,因为这与我要面对的问题无关。
我有一个自定义内核,该内核以in Allocation作为参数并包含2个全局变量,这也是Allocations。
这3个分配都使用Allocation.copyFrom(bitmap)从位图获取数据。
在这里,我还有一个自定义内核,该内核以in Allocation作为参数并包含3个全局变量,其中1是和Allocation,2是浮点数。
这些内核的工作方式与这个问题无关,但是为了确保我在下面包括了一些简化的片段。
还要注意的另一件事是,我正在遵循所有最佳实践,以确保有关分配,RenderScript和我的SurfaceView的性能达到最佳状态。
因此,可以忽略常见的错误,例如每次创建一个新的RenderScript实例,不尽可能重用Allocations。
blurMask.rs
#pragma version(1)
#pragma rs java_package_name(com.example.rs)
#pragma rs_fp_relaxed
// Extra allocations
rs_allocation allocBlur;
rs_allocation allocBlurMask;
/*
* RenderScript kernel that performs a masked blur manipulation.
* Blur Pseudo: out = original * blurMask + …Run Code Online (Sandbox Code Playgroud) 在我的应用程序中,我目前正在使用windowManager.getDefaultDisplay()来确定屏幕大小.
使用新的三星S8导航栏,可以使用左下角的"点"显示和隐藏,我得到显示或隐藏的导航栏相同的显示尺寸.它总是返回显示大小,就像显示导航栏一样 - 当导航栏被隐藏时我希望得到1080x2220,但总是得到1080x2076.
有没有什么方法可以通过编程方式区分案例并获得正确的屏幕尺寸,以便我可以正确显示我的应用程序?