Android -- Canvas java.lang.UnsupportedOperationException

本文介绍了解决Android中使用canvas的clipPath方法时遇到的兼容性问题。该问题在某些设备上会导致图像无法正常显示甚至应用崩溃。文中提供了一个简单的解决方案,即通过设置视图的LayerType为软件渲染来规避硬件加速带来的限制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

干货

java.lang.UnsupportedOperationException
     at android.view.GLES20Canvas.clipPath(GLES20Canvas.java:287)
     at br.com.iba.view.PageCurlView.drawCurl(PageCurlView.java:284)
     at br.com.iba.view.PageCurlView.onDraw(PageCurlView.java:353)
     at android.view.View.draw(View.java:9291)

在用canvas的clipPath方法画图像之后,在Nexus5上跑着没问题,但是换到红米手机上就不行了,显示不出效果来,之后换了一台华为的手机来试,直接崩溃,这样也好,总比不崩溃但是显示不出效果来要好一些,之后在StackOverFlow上搜索,找到了解决方案。

原因是因为不支持硬件加速。

解决

mImageView.setLayerType(View.LAYER_TYPE_SOFTWARE, null);

我是天王盖地虎的分割线

参考:http://stackoverflow.com/questions/7401319/use-hardwareacceleration-flag-with-canvas-clippath

其他精彩文章

android学习笔记(41)android选项菜单和子菜单(SubMenu )

android学习笔记(40)Notification的功能与用法

android学习笔记(42)android使用监听器来监听菜单事件

android学习笔记(43)android创建单选菜单和复选菜单

 jQuery教程(12)-ajax操作之基于请求加载数据

 jQuery教程(13)-ajax操作之追加 HTML

更多关于android开发文章


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值