Tôi hiện đang tạo trình chỉnh sửa hình ảnh và đang cố vẽ văn bản lên trên hình ảnh bằng canvas.drawText(). Cho đến nay tôi đã thành công trong việc làm điều này nhưng khi người dùng nhập văn bản quá dài, văn bản chỉ tiếp tục trên một dòng ra khỏi trang và không tự bọc mình với chiều rộng của màn hình. Tôi sẽ đi đâu để tới đó? Tôi đã cố gắng bằng cách sử dụng một bố trí tĩnh nhưng dường như không thể làm cho nó hoạt động, có ai có một hướng dẫn để làm điều này?Android drawText bao gồm gói văn bản
chức năng của tôi để vẽ trên vải sử dụng bố trí tĩnh:
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;
}
Được rồi, tôi đã cập nhật mã của tôi, nhưng khi tôi cố gắng để vẽ vào hình ảnh có gì xảy ra ở tất cả, tôi không có ý tưởng tại sao hoặc:
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;
}
Có phải lớp tĩnh không được dùng để vẽ trên vải không?
Hãy xem câu trả lời này khác cho một ví dụ sử dụng tốt của 'StaticLayout's: http: //stackoverflow.com/a/8369690/293280 –
bản sao có thể có của [Vẽ văn bản nhiều dòng thành Canvas] (http://stackoverflow.com/questions/6756975/draw-multi-line-text-to-canvas) –