Canvas.drawLine()でコケる
Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG | Paint.SUBPIXEL_TEXT_FLAG); PointF ptOrigin = new PointF(50.5f, 50.5f); paint.setColor(0xff000000); paint.setStrokeWidth(5); paint.setStrokeCap(Paint.Cap.ROUND); paint.setStrokeJoin(Paint.Join.ROUND); canvas.drawLine(ptOrigin.x, ptOrigin.y, ptOrigin.x + 200, ptOrigin.y + 25, paint);ウチではこのコードを実行すると、確実にエミュレータがコケる。
座標や線の幅などは関係ないみたい。
何をどうやってもコケる。
回避策
エミュレータの設定を色々変えてみたけど、設定で回避できる方法はまだ見つかってない。どなたかご存じないですかね。
というか、同じ現象は他で出てないんかな?
エミュレータに合わせて、コードを変更するのは本末転倒なのは重々承知の上で。
次のように Path を使って線分を引くと不思議とうまくいく。
Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG | Paint.SUBPIXEL_TEXT_FLAG); PointF ptOrigin = new PointF(50.5f, 50.5f); Path path = new Path(); path.moveTo(ptOrigin.x, ptOrigin.y); path.lineTo(ptOrigin.x + 200, ptOrigin.y + 25); paint.setColor(0xff000000); paint.setStrokeWidth(5); paint.setStrokeCap(Paint.Cap.ROUND); paint.setStrokeJoin(Paint.Join.ROUND); paint.setStyle(Paint.Style.STROKE); canvas.drawPath(path, paint);
0 件のコメント:
コメントを投稿