前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >java.lang.UnsupportedOperationException android.view.GLES20Canvas.clipPath

java.lang.UnsupportedOperationException android.view.GLES20Canvas.clipPath

作者头像
飞雪无情
发布2018-08-28 10:46:46
3010
发布2018-08-28 10:46:46
举报

今天自定义控件使用Canvas绘图的时候遇到的这个错误,看错误的描述,是不支持这个clipPath方法的。而且在2.3的机器上没有问题,是一部4.0的机器报了这个问题。查看这个Canvas的子类实现GLES20Canvas,发现这是在开启硬件加速时使用的。看来还是和硬件加速有关。打开手机的开发者选项,发现硬件加速没有被开启,应用里也没有开启,有点奇怪了,可能是手机优化自动开启了硬件加速。

硬件加速这个特性是从API 11加入的,可以大大加快View的绘制,是个很不错的功能,所以我们不可能在我们的程序里直接关闭这个功能这样我们的应用就使用不了这个特性了,所以在Application标签里设置android:hardwareAccelerated=“false’不可行。所以可以在用到这个自定义View里的Activity里使用android:hardwareAccelerated=“false”来配置,这样其他的Activity可以继续使用同步加速的特性。不过你的自定义View用到的地方比较多,一个个Activity配置也不太方便,所以最好的办法是在你的自定义View里禁用View级别的硬件加速。可以通过以下代码来实现

代码语言:javascript
复制
if(Build.VERSION.SDK_INT>=Build.VERSION_CODES.HONEYCOMB){//API 11及其之上
    setLayerType(LAYER_TYPE_SOFTWARE,null);//禁用硬件加速
}
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2013年11月7日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档