我正在计算函数图并将它们放入android.graphics.Path
对象中,然后用于android.graphics.Canvas.drawPath()
绘制它。
这非常有效,除非绝对 y 值非常高(正或负)并且应用程序在某些设备上运行。然后,它可能根本不会绘制路径。何时发生这种情况的阈值似乎是随机的和特定于设备的。
有谁知道这里可能是什么问题?
[编辑:仅当目标 API 级别为 14 或更高时才会发生这种情况]
编辑:例如,看看View.onDraw(Canvas canvas)
方法中的这段代码:
Paint paint = new Paint();
Path p1 = new Path();
paint.setColor(Color.BLUE);
for(float x = 0; x < getWidth(); x++)
p1.lineTo(x, x);
canvas.drawPath(p1, paint);
Path p2 = new Path();
paint.setColor(Color.GREEN);
for(float x = 0; x < getWidth(); x++)
p2.lineTo(x, x*x);
canvas.drawPath(p2, paint);
第一条路径应该是从左上角到右下角的一条线;第二条路径应该做同样的事情,但具有抛物线的形状(因此,你只能看到它的一部分)。
第一条路径绘制,第二条不绘制,显然是因为 y 值太高。很高兴知道“太高”是什么意思;)