2011年9月4日日曜日

[Android]文字列の横幅を取得する

Canvas等に文字を書く場合、自力でセンタリングや位置合わせをする場合に必要な情報を得る方法。

{
            String string="Hello World";
            Paint paint=new Paint();
          
            float width=0;
            float[] w=new float[string.length()];
          
            paint.setTextSize(24);
            paint.getTextWidths(string, w);                    // それぞれの文字の横幅を取得
}
その後に
            for(int i=0;i<string.length();i++) width+=w[i];    // すべて合計して横幅を取得
等とやると文字列の横幅が求められる。