我最近刚刚将 Galaxy S7 更新到 Android 7.0.0 并发现了一些奇怪的事情。
以前的工作 ScriptIntrinsicBlur 现在产生部分透明的结果。无论是 SupportLibrary 版本还是 native 版本。
我发现它取决于模糊半径,一般来说,半径越大,结果越不透明。
因此,我在一张完全不透明的图片上对 0 到 25(允许范围)像素的半径进行了扫描测试。
Android 模拟器 x86 API 24:
blurRad: 0.025 alpha: 254
...
blurRad: 25.0 alpha: 254
因此这会为所有半径创建一些透明度,但不会引人注意。
银河 S7,API 24,内部版本:NRD90M.G930FXXU1DQAO:
blurRad: 0.025 alpha: 10
...
blurRad: 0.25 alpha: 110
...
blurRad: 1.0 alpha: 241
Galaxy S7 alpha over blur radius
为了完整起见,我在带有 API 24 的 arm64 模拟器上运行了测试,它为所有半径生成了完全不透明的结果。
结果与要模糊的位图的大小及其内容无关(当然,只要源 alpha 为 255)
此外,我注意到 ScriptIntrinsicBlur 比以前慢 8-10 倍。即使在 HTC 上,我也可以用 800fps 模糊 400x400px 图像,而 Galaxy S7 (API 24) 只能达到 90-100fps。
所以问题是:有人可以重现这个吗?是否有解决方法?
最佳答案
Galaxy S7 的驱动程序中存在错误。这会影响配备 Mali GPU 的 S7 手机。拥有 Adreno GPU 的用户不受影响。即将发布更新。
关于java - ScriptIntrinsicBlur 在 Galaxy S7 上的 API 24 上损坏了吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41976829/