Eu estava tentando colocar uma sobreposição HTML transparente na minha visão GL, mas ela sempre piscava em preto, cobrindo minha visão GL. Depois de vários dias tentando me livrar dessa tremulação, encontrei essa solução alternativa que é aceitável para mim (mas é uma pena para o Android).
O problema é que preciso de aceleração de hardware para minhas animações CSS agradáveis e, portanto, webView.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
não é uma opção para mim.
O truque foi colocar um segundo (vazio) WebView
entre a minha visão GL e a sobreposição HTML. Isso dummyWebView
eu disse para renderizar no modo SW, e agora minhas sobreposições de HTML ficam suaves em HW e não mais tremeluzem em preto.
Não sei se isso funciona em outros dispositivos além do My Acer Iconia A700, mas espero poder ajudar alguém com isso.
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);
}
}