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