Autore Topic: Disegnare una linea dopo un evento  (Letto 1250 volte)

Offline alpha_php

  • Nuovo arrivato
  • *
  • Post: 10
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Acer Liquid A1
  • Sistema operativo:
    Windows 7
Disegnare una linea dopo un evento
« il: 03 Febbraio 2012, 22:13:29 CET »
0
Salve, sono nuovo di programmazione su android, ma ho programmato con altre piattaforme.
Volevo realizzare un app che mi permettesse di tracciare delle linee su un piano, dopo aver dato le coordinate di 2 punti.

Fino ad adesso ho seguito una guida dove viene usato l'evento onDraw per disegnare la linea, ma se non ho capito male, questo evento viene invocato solamente quando viene disegnato il canvas.
Come faccio a disegnare una linea in un secondo momento?

grazie a tutti, e complimenti per il forum!

Offline Verandi

  • Moderatore
  • Utente normale
  • *****
  • Post: 378
  • Respect: +75
    • Mostra profilo
  • Sistema operativo:
    Windows 7
Re:Disegnare una linea dopo un evento
« Risposta #1 il: 03 Febbraio 2012, 22:57:53 CET »
0
Richiami il metodo invalidate() sulla view di cui hai personalizzato l'onDraw().  ;-)

Offline alpha_php

  • Nuovo arrivato
  • *
  • Post: 10
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Acer Liquid A1
  • Sistema operativo:
    Windows 7
Re:Disegnare una linea dopo un evento
« Risposta #2 il: 04 Febbraio 2012, 08:10:22 CET »
0
Grazie  :-)  sono riuscito a tracciare la linea con il metodo da te descritto, ma per disegnare più di una linea? quando do nuova coordinate, mi modifica sempre la stessa linea, presumo che il metodo invalidate() funziona come una sorta di refresh, giusto? conviene usare le OpenGL?

Grazie ancora
« Ultima modifica: 04 Febbraio 2012, 08:12:59 CET da alpha_php »

Offline Verandi

  • Moderatore
  • Utente normale
  • *****
  • Post: 378
  • Respect: +75
    • Mostra profilo
  • Sistema operativo:
    Windows 7
Re:Disegnare una linea dopo un evento
« Risposta #3 il: 04 Febbraio 2012, 09:41:33 CET »
0
Sì, l'invalidate() è una sorta di refresh della view. Se vuoi disegnare più di una linea devi modificare il metodo onDraw(). Se vuoi disegnare due linee, in 2d e statiche, secondo me non ti conviene usare l'openGL.  ;-)

Offline alpha_php

  • Nuovo arrivato
  • *
  • Post: 10
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Acer Liquid A1
  • Sistema operativo:
    Windows 7
Re:Disegnare una linea dopo un evento
« Risposta #4 il: 04 Febbraio 2012, 10:50:06 CET »
0
Allora mi sa che devo usare OpenGL  :D
mi spiego, l'applicazione che voglio realizzare deve disegnare delle linee ed altre figure geometriche su di un piano di disegno inserendo dei dati, come ad esempio le coordinate x,y di due punti per la retta. A priori non so quante figure geometriche verranno disegnate, e inoltre voglio avere la possibilità di interagire con esse, per spostarle per esempio. Quindi mi sa che devo leggere un pò di OpenGL!

Offline Verandi

  • Moderatore
  • Utente normale
  • *****
  • Post: 378
  • Respect: +75
    • Mostra profilo
  • Sistema operativo:
    Windows 7
Re:Disegnare una linea dopo un evento
« Risposta #5 il: 04 Febbraio 2012, 11:02:51 CET »
0
Comunque mi correggo. C'è la classe Camera che può essere usata per applicare delle trasformazioni in 3d ad un canvas. :D Se usi solo le coordinate x e y sei comunque in 2d, quindi, in base a questo credo ti sia sufficiente la classe Canvas per disegnare.
Se però, durante il testing, vedi che la grafica è troppo pesante da gestire con il Canvas, allora sì, ti conviene usare l'openGl.  :D