Bandas coloridas apenas no Android 4.0 +

Em emuladores que executam o Android 4.0 ou 4.0.3, estou vendo faixas de cores horríveis das quais não consigo me livrar. Em todas as outras versões do Android que testei, os gradientes parecem suave

Eu tenho um SurfaceView configurado como RGBX_8888 e a faixa não está presente na tela renderizada. Se eu inclinar manualmente a imagem sobrepondo um padrão de ruído no final da renderização, posso suavizar os gradientes novamente, embora obviamente com um custo de desempenho que prefiro evita

Então, a banda será apresentada mais tarde. Só posso supor que, no 4.0+, meu SurfaceView esteja sendo quantizado para uma profundidade de bits menor em algum momento entre ser desenhado e exibido, e posso ver em uma captura de tela que os gradientes estão elevando 8 valores por vez. cada canal, sugerindo uma quantização para 555 (não 565

Adicionei o seguinte à minha função Activity onCreate, mas não fez diferenç

getWindow().setFormat(PixelFormat.RGBA_8888);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_DITHER);

Também tentei colocar o acima em onAttachedToWindow (), mas ainda não houve alterações.

(Acredito que o RGBA_8888 seja o formato de janela padrão de qualquer maneira para 2.2 e acima, por isso é de surpreender que a definição explícita desse formato não tenha efeito no 4.0 +

Que deixa a questão, se a fonte é 8888 e o destino é 8888, o que está introduzindo a quantização / faixas e por que aparece apenas no 4.0 +?

Muito intrigante. Será que alguém pode lançar alguma luz?

questionAnswers(4)

yourAnswerToTheQuestion