Estaba tratando de poner una superposición HTML transparente sobre mi vista GL pero siempre tiene un parpadeo negro que cubre mi vista GL. Después de varios días tratando de deshacerme de este parpadeo, encontré esta solución que es aceptable para mí (pero es una pena para Android).
El problema es que necesito aceleración de hardware para mis agradables animaciones CSS y, por webView.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
lo tanto, no es una opción para mí.
El truco consistía en poner un segundo (vacío) WebView
entre mi vista GL y la superposición HTML. Esto dummyWebView
me dijeron que la presentación en modo SW, y ahora mi HTML superposiciones renders suave en HW y el parpadeo no más negro.
No sé si esto funciona en otros dispositivos que no sean My Acer Iconia A700, pero espero poder ayudar a alguien con esto.
public class MyActivity extends Activity {
@Override
protected void onCreate(Bundle icicle) {
super.onCreate(icicle);
RelativeLayout layout = new RelativeLayout(getApplication());
setContentView(layout);
MyGlView glView = new MyGlView(this);
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.MATCH_PARENT);
dummyWebView = new WebView(this);
dummyWebView.setLayoutParams(params);
dummyWebView.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
dummyWebView.loadData("", "text/plain", "utf8");
dummyWebView.setBackgroundColor(0x00000000);
webView = new WebView(this);
webView.setLayoutParams(params);
webView.loadUrl("http://10.0.21.254:5984/ui/index.html");
webView.setBackgroundColor(0x00000000);
layout.addView(glView);
layout.addView(dummyWebView);
layout.addView(webView);
}
}