为提高app的整体性能,在manifest文件中配置的时候,有可能会启动硬件加速,如下
android:hardwareAccelerated="true"
配置后,发现设备在4.0.4与4.0.3这样的版本上使用图片剪裁功能的时候会crash,捕获到的异常信息如下
java.lang.UnsupportedOperationException at android.view.GLES20Canvas.clipPath(GLES20Canvas.java:429)
查询代码发现,在图片剪裁的时候有使用到Canvas.clipPath(path, Region.Op.DIFFERENCE);这个函数
作为Canvas的一个实现类GLES20Canvas,在使用硬件加速的时候会被使用到。
查询GLES20Canvas的源代码,发现在4.0.4与4.0.3这两个版本中,clipPath的实现均为如下代码
public boolean clipPath(Path path, Region.Op op) { throw new UnsupportedOperationException(); }
直到4.1.1这个版本,sdk中的才进行了具体的实现
@Override public boolean clipPath(Path path, Region.Op op) { // TODO: Implement path.computeBounds(mPathBounds, true); return nClipRect(mRenderer, mPathBounds.left, mPathBounds.top, mPathBounds.right, mPathBounds.bottom, op.nativeInt); }
也就是说,在使用Canvas.clipPath的时候必须要特别注意如果app要使用硬件加速,应该把涉及clipPath的Activity排除在外,配置方法是:
在manifest中activity的配置处配置android:hardwareAccelerated ="false"
相关推荐
ChatGPT技术的使用教程、使用方法、使用技巧、使用注意事项、使用中常见问题
ChatGPT技术的使用教程、使用方法、使用技巧、使用注意事项、使用中常见问题
ChatGPT技术的使用教程、使用方法、使用技巧、使用注意事项、使用中常见问题
ChatGPT技术的使用教程、使用方法、使用技巧、使用注意事项、使用中常见问题
注意事项: 1.由于该版本还处于测试期,官方暂不支持自动更新,需要用户手动下载最新文件进行升级更新,请您酌情下载。 2.本版仅适用于Internet Explorer浏览器,不适用于Firefox, Safari, Opera。 3.本版仅适用...
SystemVerilog的听课学习笔记,包括讲义截取、知识点记录、注意事项等细节的标注。 目录如下: 第一章 SV环境构建常识 1 1.1 数据类型 1 四、二值逻辑 4 定宽数组 9 foreach 13 动态数组 16 队列 19 关联数组 21 ...
使用StageVideo类来实现硬件加速呈现 第章:使用摄像头 了解Camera类 在屏幕上显示摄像头内容 设计摄像头应用程序 连接至用户的摄像头 验证是否已安装摄像头 检测摄像头的访问权限 最优化摄像头视频品质 监控摄像头...
实现内容是:在android实现Gif播放,原理是自定义View,然后在自定view用Movie类实现Gif画在canvas中来播放...注意事项:在注册表对应的Activity中要android:hardwareAccelerated="false",就是说不要利用硬件加速,
SystemVerilog的听课学习笔记,包括讲义截取、知识点记录、注意事项等细节的标注。 目录如下: 第一章 SV环境构建常识 1 1.1 数据类型 1 四、二值逻辑 4 定宽数组 9 foreach 13 动态数组 16 队列 19 ...
◆使用加速计、指南针和摄像头硬件 ◆与电话和网络硬件相关的所有内容,如电话api、sms和网络管理等 ◆高级开发主题,包括安全、ipc以及一些高级图形和用户界面技术 读者对象 本书面向希望在android手机...
唯一一个注意要点就是 Video选项里的Properties 默认状态是软件加速请把它点选到 下面那个 硬件加速 也就是括号(games)的选项。l另外显卡接口是可以选择的,但只支持数字接口 。所以默认即可给他自动选择。接着是...
串流直播系统是串流直播研发团队推出的一款永久...【注意事项】 串流直播定位为高性能专业直播应用领域,它同时支持高度优化的CPU软件编码与GPU硬件编码,为了充分发挥串流直播的优势,请尽量采用它的硬件编码特性。
这不会捕获任何硬件加速的视频表面,而仅捕获UI层。 帧缓冲区读取不以任何方式同步。 此外,实际的帧缓冲区是双缓冲的,我们只能从第一个读取。 这可以使代码保持简单,但会导致屏幕撕裂和其他较小的伪影。 查找您...
1.4.1 配置参数的一些注意事项 1.4.2 建立参数文件的连接 1.4.3 优化数据字典存储 1.5 理解 CREATE DATABASE 命令 1.6 创建数据库的技术 1.6.1 利用 Oracle 安装程序创建数据库 1.6.2 使用安装程序创建数据库...
2、如果U盘出现问题请参考三、U盘版的DOS启动盘最后的注意事项。 -------------------------------------------------------------------------------- 二、光盘版的DOS启动盘 适用对象:有光驱(刻录机)的朋友 ...
跳转到特征用PascalCase / camelCase表示法的纯C代码(C99)编写使用OpenGL(1.1、2.1、3.3或ES2)加速硬件独特的OpenGL抽象层(可用作独立模块): 具有SpriteFonts支持的强大字体模块(XNA位图字体,AngelCode...
可能不是,此回购没有硬件加速,而且我没想到fail0verflow会很快发布他们Linux源代码(我认为我可能至少还要花一个月左右的时间来开发它)。 无论哪种方式,你可能想和我真的不放在这里促进计划。 我会离开仓库,...
SQL Server 的注意事项 149 设置“配置日志记录”数据库连接 149 访问配置日志记录数据库向导 150 配置 SQL Server 数据库以便进行配置日志记录 150 配置 Oracle 数据库以便进行配置日志记录 151 设置“配置日志记录...
#注意事项 添加纯渲染混合 React的分布式批处理策略 流线通话/定时 优化硬件加速 如果要达到60 FPS,则只有16ms的帧间隔 ##廉价动画 位置-变换:translate(0px,0px) 比例尺-变换:比例尺(0) 旋转-变换:旋转...