最近,我的应用程序收到了很多关于“它在冰淇淋三明治上使用CM9无法正常工作”的评论。我无法在运行Android 4.0的模拟器上重现错误,并且由于Android市场的运作方式,我无法联系这些人询问细节。
幸运的是,一个崩溃错误报告引起了我的注意。我正在使用Canvas.clipPath
绘制圆角......看起来有些手机在尝试使用该功能时会抛出UnsupportedOperationException
。快速浏览一下Google,发现在Android 4.0中使用硬件加速似乎是一个问题 - 所以这是收到评论的潜在原因。
问题是 - 发生了什么?以前的Android版本中的应用程序硬件加速了吗?为什么不支持这种常用功能?什么是解决方法?
Canvas.clipPath的示例用法可以在我的其他帖子中找到。在此处查看已接受的答案:Android rounded corners in ListView
提前致谢
答案 0 :(得分:6)
在ICS中,默认情况下启用硬件加速。到4.0之前,默认是硬件加速已关闭。 硬件加速不支持clipPath(以及其他一些操作,请参阅此处http://android-developers.blogspot.com/2011/03/android-30-hardware-acceleration.html) 我面临同样的问题。作为一个快速修复,我将关闭整个应用程序的加速,后来我将重写代码不使用clipPath
答案 1 :(得分:2)
您只能在导致问题的特定视图上关闭硬件加速。在这里查看我的答案:https://stackoverflow.com/a/14054331/596708