0

帆布で描いたひもを真ん中に完全に揃えたい。だから私がそのようなコードを持っているなら

Paint p = new Paint();
Canvas c = holder.lockCanvas();

String centered_text = "Hello World";

次に、ペイントのスタイルサイズを設定します

p.setTextSize(35);
p.setStyle(Style.STROKE);

真ん中に文字列を描くために

c.drawText(centered_text, c.getWidth()/2, c.getHeight()/2, p);

しかし、これは実際には私のテキストを中央に配置するのではなく、左上隅を中央に配置します。中央に配置するには、文字列の文字列の幅と高さを文字ではなくピクセル単位で知る必要があります。

int string_width = centered_text.getWidth(); //String.getWidth() is not a real methode
int string_height = centered_text.getHeight(); //String.getHeight() is not a real methode

c.drawText(centered_text, (c.getWidth()/2)-(string_width/2), (c.getHeight()/2)-(string_height/2), p);

これはテキストを中央に配置しますがString.getWidth()String.getHeight()実際の方法ではありません。したがって、私の考えは、テキストサイズ文字列のサイズを使用して、高さを見つけることです。したがって、次の線に沿った何か:

int string_width = centered_text.length()*p.getTextSize();
int string_height = p.getTextSize();

しかし、文字が異なればサイズも異なるので、これは間違っているように感じます...誰もがアイデアを持っています。

4

1 に答える 1

0

Java Swingを使用しているとすると、必要なのはFontMetricsです。

new FontMetrics(canvas.getFont()).getStringBounds(someString, canvas.getGraphics());

文字列のサイズを含むRectangle2Dを返します。

于 2013-01-11T15:38:19.597 に答える