CanvasにDrawTextしたときのテキストをなめらかにする
AndroidのCanvasにDrawTextすると表示がギザギザなのに驚くことでしょう。なんと、DrawTextはそのまま使うとアンチエイリアス無しで表示されるのです。これを解決するための方法を紹介します。
PaintクラスのsetAntiAliasを実行する
対処方法は、PaintクラスのsetAntiAliasに引数trueを渡すことです。
// 文字列を出力する paint.setStyle(Paint.Style.FILL_AND_STROKE); paint.setStrokeWidth(1); paint.setTextSize(30); paint.setColor(Color.argb(255, 10, 10, 255)); paint.setAntiAlias(true); int interval = sp / dpi; int price_label = (int)min_price; for (int i = 0; i <= (diff_price / sp); i++) { int y = (chart_height - bottom_offset) - i * interval; if (y < 0) break; canvas.drawText(String.valueOf(price_label), 30, top_offset + y, paint); price_label = price_label + sp; }
作成中の株価チャートアプリだと、こんなコードになりました。
呼び出すだけなので簡単ですね。