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);
最初のパスは、左上隅から右下に向かう線である必要があります。2番目のパスも同じように動作するはずですが、放物線の形をしています(そのため、その一部しか見ることができません)。
最初のパスは描画しますが、2番目のパスは描画しません。これは、明らかにy値が高くなりすぎるためです。「高すぎる」とはどういう意味かを知っておくといいでしょう;)