現在、イメージエディタを作成していて、canvas.drawText()を使用してイメージの上にテキストを描画しようとしています。これまで私はこれまで成功してきましたが、ユーザーが長すぎるテキストを入力した場合、テキストはページの1行にそのまま残り、画面の幅に折り返されません。これをどうやってやりますか?私は静的なレイアウトを使用しようとしたが、それを動作させるように見えることができない、誰かがこれを行うためのチュートリアルを持っていますか?AndroidのdrawText(テキストの折り返しを含む)
静的レイアウト使用してキャンバス上に描画するためのMy機能:
public Bitmap createImage(float scr_x,float scr_y,String user_text){
Canvas canvas = new Canvas(image);
scr_x = 100;
scr_y = 100;
final TextPaint tp = new TextPaint(Color.WHITE);
canvas.save();
StaticLayout sl = new StaticLayout("" + user_text, tp, originalBitmap.getWidth(), Layout.Alignment.ALIGN_NORMAL, 1.0f, 0.0f, false);
sl.draw(canvas);
return image;
}
大丈夫、私は自分のコードを更新しましたが、私は何もまったく起こらない画像上に描画しようとすると、私がなぜ分かりません
public Bitmap createImage(String user_text) {
// canvas object with bitmap image as constructor
Canvas canvas = new Canvas(image);
TextPaint tp = new TextPaint();
tp.setColor(Color.RED);
tp.setTextSize(50);
tp.setTextAlign(Align.CENTER);
tp.setAntiAlias(true);
StaticLayout sl = new StaticLayout("" + user_text, tp,
canvas.getWidth(), Layout.Alignment.ALIGN_NORMAL, 1, 0, false);
canvas.translate(100, 100);
sl.draw(canvas);
return image;
}
staticlayoutはキャンバスに描画するためのものではありませんか?
がStaticLayout's 'の良い使用例については、この他の答えを見てみましょう: //stackoverflow.com/a/8369690/293280 –
[キャンバスに複数行のテキストを描画]の複製可能(http://stackoverflow.com/questions/6756975/draw-multi-line-text-to-canvas) –