在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路径中的内容。


...不得使用。叹。

10-07 19:14
查看更多