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 条评论
登录 后参与评论

相关文章

来自专栏DannyHoo的专栏

iOS开发中使用系统中没有的字体-swift

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010105969/article/details/...

12630
来自专栏LinXunFeng的专栏

iOS - Swift UIButton中ImageView的animationImages动画执行完毕后,图标变暗

16930
来自专栏分享达人秀

翻转视图ViewFlipper快速打造引导页和轮播图

前面两期学习了 ViewAnimator及其子类ViewSwitcher的使用,以及ViewSwitcher的子类ImageSwitcher和TextS...

27860
来自专栏懒人开发

鸿洋AutoLayout代码分析(一):原因和使用

代码适配,虽然第一次写比较麻烦, 但是之后就会很省事情 而其他的,虽然不麻烦,但是改动起来会很头痛,各种数据

17730
来自专栏重庆的技术分享区

如何用css和js禁止网页选择文字(兼容) 保护版权呢?(附代码)

33020
来自专栏郭霖

Android最佳性能实践(四)——布局优化技巧

在前面几篇文章当中,我们学习了如何通过合理管理内存,以及高性能编码技巧的方式来提升应用程序的性能。然而实际上界面布局也会对应用程序的性能产生比较大的影响,如果布...

24880
来自专栏程序员叨叨叨

私人订制Android本地图片选择器

史上最强的安卓图片选择器——GalleryFinal; 简书博客地址——http://www.jianshu.com/p/48ddd6756b7a

20230
来自专栏Android小菜鸡

Android自定义View——手写签批

  接到一个领导批示保留原笔迹的功能,类似于绘画板,用户打开后可以绘制,点击完成后以图片的形式保存在本地,并且显示绘制后图片,上传服务器,达到保留原笔迹的目的。...

17330
来自专栏酷玩时刻

android-iconify 使用详解

2、在java代码中通过使用一个IconDrawable为具有setIcon(Drawable drawable)方法的控件设置该字体图标

13320
来自专栏分享达人秀

日历视图CalendarView和定时器Chronometer

上一期学习了AnalogClock、DigitalClock和TextClock时钟组件,本期继续来学习日历视图CalendarView和定时器Chro...

24660

扫码关注云+社区

领取腾讯云代金券