在我玩的玩具图形应用程序中,我有这样的东西:
Path p = new Path();
p.addCircle(40,40,40,Path.Direction.CW);
canvas.drawPath(p);
这在模拟器和手机上都按预期工作。但现在我试试这个:
Path p = new Path();
p.addCircle(40,40,40,Path.Direction.CW);
Path q = new Path(p);
canvas.drawPath(q);
这在模拟器上按预期工作,但在我运行 4.04 的 Nexus S 上什么都不做。
同样,如果我尝试:
Path p = new Path();
p.addCircle(40,40,40,Path.Direction.CW);
Matrix m = new Matrix();
m.setTranslate(50,50);
Path q = new Path();
p.transform(m,q);
canvas.drawPath(q);
同样,这只适用于模拟器,不适用于我的手机。这里有什么问题?没有异常,日志中没有任何用处,执行直接通过相关代码。
最佳答案
我预计这是因为硬件加速而失败。尝试将其关闭作为快速测试。
我刚刚在我使用的绘图库中遇到了类似的问题。该问题看起来与绘图代码中的多个 new Path() 调用有关。我已将它们拉到它们真正所属的构造函数中,现在一切正常。
关于Android路径复制构造函数失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11075193/