我的 android.graphics.path 有一些问题。
我正在开发一个游戏。我有一些路径。它们不会改变尺寸、形状。我把它们画到画布上。我在每个游戏的框架中移动它们。所以我设置了一个偏移量:dx
它在许多设备上运行良好:
- 诺基亚 X Dual Sim(Android 4.4.4 Cyanogen 模式)(API 级别 19)
- 三星 Galaxy Duos (GT-S7562)(Android 4.0.4)(API 级别 15)
- 索尼 X8(Android 2.3.7 Cyanogenmode)(API 级别 10)
- 以及其他一些
但它在其他一些设备上效果不佳:
- 三星 Galaxy Ace II (Android 4.1.2)(API 级别 16)
- Nokia X Dual Sim(Nokia X 平台 1.2)(Android Studio 显示:API 级别 16)
-
以及其他一些
我在绘制方法中设置了偏移量:
路径.offset(dX, 0);
不工作意味着:它不移动。系统将其拉至原始位置。
但当它起作用时,它会下降(移动,而且速度很快)
我也尝试过矩阵:
translateMatrix = new Matrix();
translateMatrix.setTranslate(dX, 0);
path.transform(translateMatrix);
同样的事情也发生了。
我在 Android 开发者网站上看到一些内容:http://developer.android.com/reference/android/graphics/Path.html http://developer.android.com/reference/android/graphics/Path.html
无效偏移量(浮点dx,浮点dy)
将路径偏移 (dx,dy),成功时返回 true。
???它一定已经改变了,这就是为什么这里有一个错误
它可能与硬件加速模式有关:
https://groups.google.com/forum/#!topic/android-developers/HgGVSbSghpk https://groups.google.com/forum/#!topic/android-developers/HgGVSbSghpk
我从 Api 级别 9 开始支持,但我转向了硬件加速模式。 (适用于 API 级别 14)
当我关闭它时,问题也会出现。
我不明白为什么它有时可以在 API 级别 14 上工作,有时却不能?
上面说,硬件加速模式支持Path:
http://android-developers.blogspot.de/2011/03/android-30-hardware-acceleration.html http://android-developers.blogspot.de/2011/03/android-30-hardware-acceleration.html
你知道这有什么问题吗?我应该怎么办?
更混合的东西:这适用于所有设备(但运行速度较慢 - 它滞后):
Canvas temp = new Canvas(bitmap);
path.draw(temp);
originalCanvas.drawBitmap(bitmap, 0, 0, myPaint);
So
- 我做了一个临时画布
- 我把它设置在位图上
- 我在画布上绘制(它将位于位图上)
- 我将位图绘制到原始画布上
为什么它在这里起作用?
请帮助我应该如何让它发挥作用。