专栏首页飞雪无情的博客java.lang.UnsupportedOperationException android.view.GLES20Canvas.clipPath

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

今天自定义控件使用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级别的硬件加速。可以通过以下代码来实现

if(Build.VERSION.SDK_INT>=Build.VERSION_CODES.HONEYCOMB){//API 11及其之上
    setLayerType(LAYER_TYPE_SOFTWARE,null);//禁用硬件加速
}

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 使用Nginx搭建PHP服务器

    一般我们都是采用Apache 作为PHP的解析服务器,这次则是采用Nginx这个强大的反向代理服务器来搭建PHP服务器。下面就以Linux发行版Ubuntu为例...

    飞雪无情
  • Go语言实战笔记(五)| Go 切片

    切片也是一种数据结构,它和数组非常相似,因为他是围绕动态数组的概念设计的,可以按需自动改变大小,使用这种结构,可以更方便的管理和使用数据集合。

    飞雪无情
  • 聊聊职能型组织的优缺点

    最近几年做管理,协调团队和资源,对组织的构成、方式、协作、目标等有了更深的认知,最近公司一个比较大的项目又触发了我对组织结构的总结和思考,今天这篇文章不聊技术了...

    飞雪无情
  • 实习杂记(28):Android不同层次开启硬件加速的方式

    1、应用: <application android:hardwareAccelerated="true">

    wust小吴
  • 使用 Clockwork 来调试 Laravel App

    Chrome 插件 Clockwork 服务器端的 Composer Package Github 项目

    gaobinzhan
  • 使用PrerenderSpaPlugin预渲染插件没有成功渲染

    mcq
  • 小师妹学JavaIO之:文件读取那些事

    小师妹最新对java IO中的reader和stream产生了一点点困惑,不知道到底该用哪一个才对,怎么读取文件才是正确的姿势呢?今天F师兄现场为她解答。

    程序那些事
  • Java Bean Validation分组校验

    十毛
  • Flask 自定义错误处理 app.errorhandler

    在默认的http请求中,如果没有进行特别的自定义需求,那么出现404错误之类的,则会显示Not Found等信息。

    Devops海洋的渔夫
  • 生物信息重要的文本处理命令(实例命令及解释)

    linux文本处理命令是一类对文件进行操作的命令,通过使用文本处理命令,可以轻松的对文件进行排序,拆分,合并等操作,熟练掌握文本处理命令,在生物信息文本处理中,...

    生信交流平台

扫码关注云+社区

领取腾讯云代金券