我见过的许多新的Android应用程序都在其背景上使用了noise effect,通常是渐变色。有趣的是,某些应用程序会在整个应用程序中使用半径渐变来达到这种效果,这将需要大量磁盘空间来存储图像。现在,Android具有GradientDrawable,可以非常轻松地创建渐变。我正在考虑以编程方式创建噪声效果。

以前有没有其他人这样做过,如果是这样,您是如何做到的?您只是使用图像还是编写自己的自定义噪声叠加?

最佳答案

如果您只想以编程方式消除色带,则可以通过覆盖 Activity 的onAttachedToWindow()回调来做到这一点,如下所示:

@Override
public void onAttachedToWindow() {
  super.onAttachedToWindow();
  Window window = getWindow();
  // Eliminates color banding
  window.setFormat(PixelFormat.RGBA_8888);
}

这对于我的常规应用程序非常有效。我还没有用小工具测试。

10-05 19:33