Saya mencoba untuk meletakkan overlay HTML transparan di atas tampilan GL saya tetapi selalu berkedip hitam yang mencakup pandangan GL saya. Setelah beberapa hari mencoba untuk menyingkirkan kerlipan ini saya menemukan solusi yang dapat diterima bagi saya (tetapi memalukan untuk android).
Masalahnya adalah saya perlu akselerasi perangkat keras untuk animasi CSS saya yang bagus dan karenanya webView.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
bukan pilihan bagi saya.
Caranya adalah dengan meletakkan kedua (kosong) WebView
antara tampilan GL saya dan overlay HTML. Ini dummyWebView
saya katakan untuk me-render dalam mode SW, dan sekarang overlay HTML saya menjadikannya mulus di HW dan tidak ada lagi flickering hitam.
Saya tidak tahu apakah ini berfungsi pada perangkat lain selain My Acer Iconia A700, tapi saya harap saya bisa membantu seseorang dengan ini.
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);
}
}