如果你的png圖片是預乘的,並且使用gl.glBlendFunc(GL10.GL_SRC_ALPHA, GL10.GL_ONE_MINUS_SRC_ALPHA)就會產生黑邊,解決方法是使用gl.glBlendFunc(GL10.GL_ONE, GL10.GL_ONE_MINUS_SRC_ALPHA).
下面是我用的一個不完美的解決方案.
if (this.transparency > 0.4f) {
gl.glBlendFunc(GL10.GL_ONE, GL10.GL_ONE_MINUS_SRC_ALPHA);
gl.glColor4f(1.0f, 1.0f, 1.0f, 1);
} else {
gl.glBlendFunc(GL10.GL_SRC_ALPHA, GL10.GL_ONE_MINUS_SRC_ALPHA);
gl.glColor4f(1.0f, 1.0f, 1.0f, this.transparency);
}