WebView中的Canvas图像在android 2.3.x到4.1.x中没有任何问题 但是,由于WebView切换到铬我的画布图像有问题 - 我所看到的只是空白背景而是生成图像。我在4.4.x和5.1+ android roms上都有问题。 我尝试使用我在stackoverflow上找到的答案,比如在setContentView之前添加enableSlowWholeDocumentDraw()。
if (Build.VERSION.SDK_INT >= 21) {
MyWebView.enableSlowWholeDocumentDraw();
}
或将webview设置为软件渲染:
MyWebView.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
此外,我甚至尝试在我的Android清单中完全禁用硬件加速。但没有任何成功。
目前的代码非常简单:
public class MainActivity extends Activity {
private WebView WebViewPassCard;
@SuppressLint("SetJavaScriptEnabled")
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (Build.VERSION.SDK_INT >= 21) {
WebViewPassCard.enableSlowWholeDocumentDraw();
}
setContentView(R.layout.mainland);
WebViewPassCard = (WebView) findViewById(R.id.webView);
WebViewPassCard.getSettings().setBuiltInZoomControls(true);
WebViewPassCard.getSettings().setJavaScriptEnabled(true);
WebViewPassCard.getSettings().setDomStorageEnabled(true);
WebViewPassCard.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
WebViewPassCard.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);
WebViewPassCard.loadUrl("file:///android_asset/passwordcard.html");
可以在此处找到资产:https://github.com/cryptofuture/PassCard/tree/master/assets
LogCat中的错误:
Android 5.x +:
art:尝试从IRT中删除本地句柄作用域条目,忽略
AwContents:onDetachedFromWindow在已经分离时调用。忽略
编舞:跳过52帧!应用程序可能在其主线程上做了太多工作。
Android 4.4.x:
AwContents:nativeOnDraw失败;清除背景颜色。