android.graphics.Path不在设备上渲染,但在模拟器上渲染

时间:2013-07-12 11:14:50

标签: android

在Android 4+上,我有一个简单的点对点线,可以在模拟器上使用,但无法在主流设备上绘图(例如三星S3)。

这是硬件错误吗?操作系统错误?或者我有什么不对劲吗?这是两行基本代码:(。

代码:

Path pathToPaint = new Path(currentlyDisplayingRoute.path);
canvas.drawPath( pathToPaint, pathPaint);

模拟器:

  

路径在正确的位置以正确的颜色在屏幕上绘制

设备:

  

路径从不绘制

1 个答案:

答案 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路径复制内容。

...不得使用。叹息。