3

写真アプリを開発しています。そのために、次のコードを使用しています。

Canvas canvas = new Canvas(bmOverlay);
TextPaint paint = new TextPaint();
paint.setColor(Color.RED);
paint.setTextAlign(Align.CENTER);
paint.setTextSize(50);
paint.setFlags(Paint.ANTI_ALIAS_FLAG);
// if the background image is defined in main.xml, omit this line
canvas.drawBitmap(mBitmap, 0, 0, null);
int left = measureTextWidth(paint, InstaTextActivity.CurrentWord);
int top = measureTextHeight(paint, InstaTextActivity.CurrentWord);

left = mBitmap.getWidth() / 2 - InstaTextActivity.textCount / 2;
top = mBitmap.getHeight() / 2 - InstaTextActivity.textCount / 2;
StaticLayout layout = new StaticLayout(InstaTextActivity.CurrentWord, paint, total,
 android.text.Layout.Alignment.ALIGN_NORMAL, (float) 1.0, (float) 0.0, true);
//canvas.save();
canvas.translate(left, top);
layout.draw(canvas);
//canvas.restore();

このコードでは、 を使用してpaint.setTextAlign(Align.CENTER)います。中央に配置されますが、テキストは中央から左に配置されず、中央から右に配置されます。また、キャンバス上でテキストを整列させる適切な方法は何ですか?

ここに画像の説明を入力

でも私はしたい

ここに画像の説明を入力

4

1 に答える 1

6

使用しています

StaticLayout mTextLayout = new StaticLayout(text, mTextPaint,
                canvas.getWidth(), Alignment.ALIGN_NORMAL, 1.0f, 0.0f,
                false);
canvas.translate((canvas.getWidth() / 2) - (mTextLayout.getWidth() / 2), (canvas.getHeight() / 2) - ((mTextLayout.getHeight() / 2)));

複数行のテキストをキャンバスの中央に配置するには

于 2014-02-21T20:17:58.493 に答える