标签: samsung-s8

三星Galaxy S8上的RenderScript性能低下

语境

我有一个Android应用,需要一个图象,模糊的图像,去除模糊基于掩模和施加最终层(不相关)。最后两个步骤(基于蒙版消除模糊并应用最后一层)重复进行,每次使用一个新蒙版(150个蒙版)。

输出get绘制在画布(SurfaceView)上。这样,应用程序可以有效地创建具有动画模糊效果的图像视图。

技术细节和代码

所有这些图像处理步骤都是使用RenderScript实现的。

我将第1步的代码省略掉,使图片模糊,因为这与我要面对的问题无关。

步骤2:消除基于蒙版的模糊

我有一个自定义内核,该内核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)

performance animation android renderscript samsung-s8

13
推荐指数
0
解决办法
148
查看次数

在Galaxy S8上获得正确的屏幕显示大小

在我的应用程序中,我目前正在使用windowManager.getDefaultDisplay()来确定屏幕大小.

使用新的三星S8导航栏,可以使用左下角的"点"显示和隐藏,我得到显示或隐藏的导航栏相同的显示尺寸.它总是返回显示大小,就像显示导航栏一样 - 当导航栏被隐藏时我希望得到1080x2220,但总是得到1080x2076.

有没有什么方法可以通过编程方式区分案例并获得正确的屏幕尺寸,以便我可以正确显示我的应用程序?

android screen-size samsung-s8

8
推荐指数
1
解决办法
1515
查看次数