Autore Topic: Canvas: Creare rettangolo in base a dimensione del testo di una string  (Letto 904 volte)

Offline c47

  • Nuovo arrivato
  • *
  • Post: 9
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Tab 2 10"
  • Sistema operativo:
    Windows 8
Sapete come potrei creare un rettangolo dalle dimensioni tali da ricoprire il testo di una stringa sfruttando Canvas di android?

Offline zorcraft

  • Utente junior
  • **
  • Post: 108
  • Respect: +5
    • Mostra profilo
  • Dispositivo Android:
    note
  • Play Store ID:
    zorcraft
Re:Canvas: Creare rettangolo in base a dimensione del testo di una string
« Risposta #1 il: 20 Maggio 2013, 09:56:16 CEST »
0
Il codice per un rettangolo giallo è:
Codice: [Seleziona]
paint.setColor(Color.YELLOW);
canvas.drawRect(33, 33, 77, 60, paint );

il primo 33 e la distanza dal bordo sinistro il successivo dal bordo di sopra dopo di che hai la lunghezza e la larghezza del rettangolo.

Ovviamente devi sapere in che coordinate viene disegnata la stringa e il rettangolo lo fai disegnare dopo partendo da quelle coordinate.

Offline Eu4ia

  • Utente junior
  • **
  • Post: 93
  • Respect: +16
    • Mostra profilo
  • Play Store ID:
    Eu4ia
  • Sistema operativo:
    Ubuntu 11.10 + Windows 7
Re:Canvas: Creare rettangolo in base a dimensione del testo di una string
« Risposta #2 il: 17 Luglio 2013, 13:57:06 CEST »
0
Ciao,
ipotizzando che:
x,y siano le coordinate (angolo alto a sinistra) di dove vuoi far iniziare a disegnare il testo
text sia la stringa che vuoi scrivere

io faccio così:

Codice (Java): [Seleziona]
                Paint text_paint = new Paint();

                text_paint.setColor(Color.WHITE);
                text_paint.setTextSize(10);
               
                canvas.drawText(text, x, y, text_paint);

                text_paint.getTextBounds(text, 0, text.length(), bounds);
               
                Paint RPaint = new Paint();
                RPaint.setColor(Color.BLACK);
                RPaint.setStyle(Style.STROKE);
               
                canvas.drawRect(x, y, x + bounds.width(), y - bounds.height(), RPaint);
               

Naturalmente puoi cambiare colori e dimensioni a tuo piacere.

Dovrebbe andar bene  ;-)
« Ultima modifica: 17 Luglio 2013, 23:38:09 CEST da Eu4ia »
Se ti sono stato utile premi "Thanks" ;-)