在Android 4+上,我有一条简单的点对点线,可以在Simulator上正常显示,但不能在主流设备(例如Samsung S3)上使用。
这是硬件错误吗?操作系统错误?还是我做错了什么?这是两行基本代码:(。
码:
Path pathToPaint = new Path(currentlyDisplayingRoute.path);
canvas.drawPath( pathToPaint, pathPaint);
模拟器:
路径以正确的颜色在屏幕上的正确位置绘制
设备:
道路永远不会画
最佳答案
编辑:要明确:是的,这是由硬件加速错误引起的。但是...如果禁用硬件加速,则会在Canvas :(。)的Android软件实现中遇到其他(主要)错误。
OK,事实证明,核心的Android类“ Path”从根本上被破坏了:(。
有两个构造函数。这些构造函数之一在硬件上“未实现”。没有记录。我认为这是个showstopper错误-它不会产生警告,没有错误,只会破坏API和使用它的所有应用程序:(.。
此构造函数:http://developer.android.com/reference/android/graphics/Path.html#Path%28android.graphics.Path%29
API级别1中添加的公共路径(Path src)
创建一个新路径,复制src路径中的内容。
...不得使用。叹。