Attualmente sto creando un editor di immagini e sto tentando di disegnare il testo sopra l'immagine usando canvas.drawText(). Finora ho avuto successo nel fare ciò, ma quando l'utente immette del testo troppo lungo, il testo continua su una sola riga fuori dalla pagina e non si estende alla larghezza dello schermo. Come potrei fare questo? Ho provato a utilizzare un layout statico ma non riesco a farlo funzionare, qualcuno ha un tutorial per farlo?DrawText Android incluso il testo a capo
La mia funzione per disegnare su una tela utilizzando il layout statico:
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;
}
Va bene, ho aggiornato il mio codice, ma quando provo a disegnare sull'immagine non succede niente affatto, non ho idea del perché o:
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;
}
Islay statico non deve essere utilizzato per disegnare su tela?
Date un'occhiata a quest'altra risposta per un buon esempio di utilizzo di 'StaticLayout's: http: //stackoverflow.com/a/8369690/293280 –
possibile duplicato di [Disegna testo multilinea su tela] (http://stackoverflow.com/questions/6756975/draw-multi-line-text-to-canvas) –