現在、画像エディターを作成しており、canvas.drawText() を使用して画像の上にテキストを描画しようとしています。これまでのところ、私はこれを成功させてきましたが、ユーザーが長すぎるテキストを入力すると、テキストはページの外に 1 行だけ続き、画面の幅に折り返されません。どうすればこれを行うことができますか?静的レイアウトを使用してみましたが、機能しないようです。これを行うためのチュートリアルを持っている人はいますか?
静的レイアウトを使用してキャンバスに描画するための私の関数:
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 は、キャンバスに描画するために使用するためのものではありませんか?