1

在 Android 4+ 上,我有一条简单的点对点线,在模拟器上画得很好,但在主流设备(例如三星 S3)上画得不好。

这是硬件错误吗?操作系统错误?还是我做错了什么?这是两行基本代码:(。

代码:

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

模拟器:

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

设备:

路径从不绘制

4

1 回答 1

2

编辑:要明确:是的,它是由硬件加速错误引起的。但是......如果我禁用硬件加速,我会在 Canvas 的 Android 软件实现中遇到其他(主要)错误 :(。


好的,所以事实证明核心 Android 类“路径”从根本上被破坏了 :(。

有两个构造函数。这些构造函数之一在硬件上“未实现”。这没有记录。我认为这是一个引人注目的错误 - 它不会产生任何警告,不会产生错误,它只会破坏 API 和任何使用它的应用程序 :(。

这个构造函数:http: //developer.android.com/reference/android/graphics/Path.html#Path%28android.graphics.Path%29

在 API 级别 1 中添加的公共路径 (Path src)

创建一个新路径,从 src 路径复制内容。

……不得使用。叹。

于 2013-07-12T11:34:21.823 回答