我对 android.graphics.path 有一些问题。
我正在开发一个游戏。我有一些路径。他们不会改变那里的大小和形状。我把它们画在 Canvas 上。我在每个游戏的框架中移动它们。所以我设置了一个偏移量:dx
它适用于许多设备:
但它在其他一些设备上效果不佳:
我在我的绘制方法中设置了偏移量:
path.offset(dX, 0);
不工作的意思是:它不动。系统将其拉至原始位置。
但是当它起作用时,它会下降(移动,而且速度很快)
我也试过矩阵:
translateMatrix = new Matrix();
translateMatrix.setTranslate(dX, 0);
path.transform(translateMatrix);
同样的事情发生了。
我在 Android 的开发者网站上看到了一些东西:
http://developer.android.com/reference/android/graphics/Path.html
无效偏移( float dx, float dy)
将路径偏移 (dx,dy),成功时返回 true。
???它一定已经改变了,这就是为什么这里是一个错误
它可能与硬件加速模式有关:
https://groups.google.com/forum/#!topic/android-developers/HgGVSbSghpk
我从 Api 级别 9 开始支持,但我打开了 Harware 加速模式。 (它适用于 API 级别 14)
当我关闭它时,问题也会出现。
我不明白为什么它有时可以在 API 级别 14 上工作,有时为什么不呢?
它说,硬件加速模式支持路径:
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);
所以
为什么它在这里工作?
请帮助我如何使它工作。
最佳答案
我让它工作了,但没有偏移
我制作了自己的偏移函数:
抵消。
计算新点();
wallpath.rewind();
wallpath.moveTo(newPosX, newPosY);
.
.
.
wallpath.close();
它表现良好:)
关于android - Path.offset() 不适用于所有设备,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27422681/