facebook twitter hatena line google mixi email

Android/テキスト表示

提供: 初心者エンジニアの簡易メモ
移動: 案内検索

テキスト表示

Paint paint = new Paint();
paint.setColor(Color.BLUE);
// アンチエイリアス
paint.setAntiAlias(true);
// 文字の大きさ
paint.setTextSize(40);
// 指定した位置に文字列を描く
canvas.drawText("テキスト表示", 0, 0, paint);

テキストを傾ける(回転)

// Pathに沿って文字を書く
paint.setColor(Color.RED);
Path path = new Path();
path.moveTo(50, 200);
path.lineTo(450, 500);
canvas.drawTextOnPath("文字列を傾ける", path, 0, 0, paint);
paint.setColor(Color.GREEN);

テキストを傾ける(回転)メソッド化

  // テキスト回転描画
  public static void drawTextRota(Canvas canvas, String str, int x, int y, int degrees, int size) {
    Paint paint = new Paint();
    // Pathに沿って文字を書く
    paint.setColor(Color.RED);
    // アンチエイリアス
    paint.setAntiAlias(true);
    // 文字の大きさ
    paint.setTextSize(size);
    Path path = new Path();
    // 文字列の幅を取得
    float textWidth = paint.measureText(str);
    float rad = (float)(degrees * Math.PI / 180);
    int x1 = (int)(- textWidth / 2 * Math.cos(rad) + x);
    int y1 = (int)(- textWidth / 2 * Math.sin(rad) + y);
    int x2 = (int)(textWidth / 2 * Math.cos(rad) + x);
    int y2 = (int)(textWidth / 2 * Math.sin(rad) + y);
    path.moveTo(x1, y1);
    path.lineTo(x2, y2);
    canvas.drawTextOnPath(str, path, 0, 0, paint);
  }