html5不支持硬件加速,手机Android HTML5硬件加速 - 画布

6 个答案:

答案 0 :(得分:8)

Android中重复的HTML5画布问题已经在版本4.1.1中出现,并且尚未在最新的4.2中修复。

解决方案是画布的父HTML元素的none将溢出:隐藏或溢出:滚动

答案 1 :(得分:2)

我遇到了同样的问题。在我的情况下,似乎是由jquery mobile css引起的。

进入guya添加的更多细节,转到jquery.mobile.structure.css文件并更改此行:

.ui-content {border-width:0;溢出:可见; overflow-x:hidden;填充:15px; }

.ui-content {border-width:0;溢出:可见;填充:15px; }

删除overflow-x:hidden属性可以解决问题。

编辑:奇怪的是,我注意到当画布宽度为256px宽度或更小时没有出现问题。

答案 2 :(得分:2)

好的,所以我想出了HACKIEST解决方案。我的onTouchEnd事件被触发后,我必须执行以下操作

1. Append changes to the canvas. It'll double-draw

2. Create a clone of the canvas

3. remove the canvas, re-add it

4. Copy the data from the clone over

然后这个小虫消失了......嘲笑。

我必须让它工作,在删除硬件加速后我注意到jQM的笨重感觉

答案 3 :(得分:1)

对于任何有兴趣的人来说,Android 5的工作效果都很惊人,画布工作速度要快得多。

答案 4 :(得分:0)

我在创建视图时解决了这个问题:

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 ...

}

答案 5 :(得分:0)

我正在使用Segment Display库,它也受此问题的影响。经过与lib的作者的长时间讨论,他出来了一个快速的解决方法。他告诉我要添加这两行:

context.fillStyle = '#fff';

context.fillRect(0, 0, display.width, display.height);

就在这一行之后:

// clear canvas

context.clearRect(0, 0, display.width, display.height);

解决方案经过测试,就像魅力一样。

通过对给定代码的快速分析,我假设透明(clearRect)画布导致了这些问题,并将其更改为非透明的(fillRect)修复了该错误。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值