【发布时间】:2011-11-24 10:12:03
【问题描述】:
有没有办法让整个 Android OpenGL ES 场景变得透明?这对于小部件和壁纸很有用。
有一个特定于 Android 的答案 here。但我的理解是,这种技术创建了一个透明背景,人们可以在其上进一步绘制透明形状。
我正在寻找一种在绘制后使整个场景透明的方法。例如,有没有什么方法可以在场景绘制完成后改变整个颜色缓冲区的 alpha 值?
【问题讨论】:
有没有办法让整个 Android OpenGL ES 场景变得透明?这对于小部件和壁纸很有用。
有一个特定于 Android 的答案 here。但我的理解是,这种技术创建了一个透明背景,人们可以在其上进一步绘制透明形状。
我正在寻找一种在绘制后使整个场景透明的方法。例如,有没有什么方法可以在场景绘制完成后改变整个颜色缓冲区的 alpha 值?
【问题讨论】:
是的,而且非常简单。您需要通过使用正确的颜色和混合功能用四边形覆盖整个视图来混合颜色缓冲区中的值。我认为这可以解决问题:
glBlendFunc(GL10.GL_ZERO, GL10.GL_SRC_COLOR)
这应该用 a 缩放颜色缓冲区的 alpha,我认为这是你想要的。
【讨论】:
如果您需要 API 14 (Android 4.0),那么有一个新类可以解决这个问题:TextureView。在这个Android Developers blog post 中有一些关于它的信息。不幸的是,我认为在以前的 Android 版本中没有一种简单的方法可以做到这一点。
【讨论】: