Androidプログラマへの道 〜 Moonlight 明日香 〜 - テキストサイズをかえる

文字サイズをかえる

  • TextSize.java
    • Paintクラスのインスタンスを生成する.
    • Paint#setTextSizeメソッドで, 文字サイズを設定する.

文字列サイズをかえる

  • TextSize.java
    • Paintクラスのインスタンスを生成する.
    • 各文字の幅を取得し, 文字列の幅を計算する.
    • Paint#setTextScaleXメソッドで, 文字スケールを設定する.
package com.moonlight_aska.android.textsize;

import android.app.Activity;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.os.Bundle;
import android.view.View;

public class Example01 extends Activity {
  /** Called when the activity is first created. */
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    MyView view = new MyView(getApplication());
    setContentView(view);
  }
}

class MyView extends View {
  public MyView(Context context) {
    super(context);
    // TODO Auto-generated constructor stub
  }

  @Override
  protected void onDraw(Canvas canvas) {
    canvas.drawColor(Color.WHITE);
    Paint paint = new Paint();
    paint.setColor(Color.BLUE);
    // 文字サイズの設定
    paint.setTextSize(20);
    canvas.drawText("あいうえお", 50, 50, paint);
    // 文字列サイズの設定
    String str = "アイウエオ";
    float[] widths = new float[str.length()];
    int charNum = paint.getTextWidths(str, widths);  // 各文字の幅取得
    int sum = 0;
    for(int i=0; i<charNum; i++){
      sum += widths[i];
    }
    paint.setTextScaleX(250/sum);  // スケールを設定
    canvas.drawText(str, 50, 100, paint);
  }
}