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