Tôi đã cố gắng đặt lớp phủ HTML trong suốt lên chế độ xem GL của mình nhưng nó luôn nhấp nháy màu đen bao phủ chế độ xem GL của tôi. Sau vài ngày cố gắng để thoát khỏi sự nhấp nháy này, tôi thấy cách giải quyết này có thể chấp nhận được đối với tôi (nhưng thật xấu hổ cho Android).
Vấn đề là tôi cần tăng tốc phần cứng cho các hoạt hình CSS đẹp của mình và do đó webView.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
không phải là một lựa chọn cho tôi.
Mẹo là đặt một giây (trống) WebView
giữa chế độ xem GL của tôi và lớp phủ HTML. Điều này dummyWebView
tôi đã nói để kết xuất ở chế độ SW, và bây giờ lớp phủ HTML của tôi hiển thị mượt mà trong CTNH và không còn nhấp nháy màu đen nữa.
Tôi không biết điều này có hoạt động trên các thiết bị khác ngoài Acer Iconia A700 không, nhưng tôi hy vọng tôi có thể giúp ai đó với điều này.
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);
}
}