Html5 canvas 在Android浏览器中禁用html5 canas上2d渲染的硬件加速
我在android浏览器上执行了javascript html5画布测试以进行评测。Html5 canvas 在Android浏览器中禁用html5 canas上2d渲染的硬件加速,html5-canvas,Html5 Canvas,我在android浏览器上执行了javascript html5画布测试以进行评测。 为了在android webbrowser中禁用html5画布上2d渲染的硬件加速,我在android浏览器中配置了标志。(外部/软件包/应用程序/浏览器…) 但是,这种配置似乎不起作用。 有人能给我一些帮助吗?我想你对Android画布和html5画布感到困惑。它们是两种不同的东西。您的代码片段面向android画布。不是Html5。我认为在浏览器上禁用硬件加速的唯一方法是更改浏览器设置。是Chromes
为了在android webbrowser中禁用html5画布上2d渲染的硬件加速,我在android浏览器中配置了标志。(外部/软件包/应用程序/浏览器…)
但是,这种配置似乎不起作用。
有人能给我一些帮助吗?我想你对Android画布和html5画布感到困惑。它们是两种不同的东西。您的代码片段面向android画布。不是Html5。我认为在浏览器上禁用硬件加速的唯一方法是更改浏览器设置。是Chromes switch的一个示例。在创建我的视图时,我添加了以下代码:
private void fixSignatureDoubleLineIssueOnJb(View root) {
Log.d(TAG, "API level: " + Build.VERSION.SDK_INT);
if (Build.VERSION.SDK_INT >= 16) {
try {
Method method = root.getClass().getMethod("setLayerType", int.class, Paint.class);
method.invoke(root, 0x01/* View.LAYER_TYPE_SOFTWARE */, null);
Log.d(TAG, "hardware accelaration disabled");
} catch (NoSuchMethodException e) {
Log.e(TAG, "failed to disabled hardware acceleration", e);
} catch (IllegalArgumentException e) {
Log.e(TAG, "failed to disabled hardware acceleration", e);
} catch (IllegalAccessException e) {
Log.e(TAG, "failed to disabled hardware acceleration", e);
} catch (InvocationTargetException e) {
Log.e(TAG, "failed to disabled hardware acceleration", e);
}
}
}
请幽默我,但我很好奇为什么你要关闭硬件加速?测试javascript在一个html文件中,在android web浏览器中打开。当我在packages/apps/Browser/AndroidManifest.xml中禁用硬件加速时,一些不使用html5画布的图形渲染是软件渲染(我观察到配置文件),但一些使用html5画布(标记)的2d渲染是硬件加速的。这就是我发布这个问题的原因。无论如何,谢谢你的推荐!
private void fixSignatureDoubleLineIssueOnJb(View root) {
Log.d(TAG, "API level: " + Build.VERSION.SDK_INT);
if (Build.VERSION.SDK_INT >= 16) {
try {
Method method = root.getClass().getMethod("setLayerType", int.class, Paint.class);
method.invoke(root, 0x01/* View.LAYER_TYPE_SOFTWARE */, null);
Log.d(TAG, "hardware accelaration disabled");
} catch (NoSuchMethodException e) {
Log.e(TAG, "failed to disabled hardware acceleration", e);
} catch (IllegalArgumentException e) {
Log.e(TAG, "failed to disabled hardware acceleration", e);
} catch (IllegalAccessException e) {
Log.e(TAG, "failed to disabled hardware acceleration", e);
} catch (InvocationTargetException e) {
Log.e(TAG, "failed to disabled hardware acceleration", e);
}
}
}