Autore Topic: rendere rettangolo(canvas) lampeggiante  (Letto 716 volte)

Offline topix93

  • Utente junior
  • **
  • Post: 84
  • Respect: +1
    • Google+
    • Mostra profilo
  • Dispositivo Android:
    LG Optimus ONE
  • Sistema operativo:
    Windows 7 Professional 64 bit, Ubuntu 11.04
rendere rettangolo(canvas) lampeggiante
« il: 31 Agosto 2012, 12:00:55 CEST »
0
ho una classe che estende View e nel metodo onDraw faccio disegnare diversi rettangoli in diverse posizioni... il problema è che voglio far lampeggiare, in modo regolare, un singolo rettangolo... ho gia provato a fare come in questa guida http://pastebin.com/RyRjWLj1. Ho inserito il tutto nel metodo onDraw aggiungendo un Thread.sleep(50) ed invalidate()... in questo modo però il rettangolo non lampeggia in modo regolare ed inoltre non riesco piu a rilevare le gesture che avevo impostato per quella View...
Ho pensato quindi di provare a creare un thread che vada a modificare il canvas regolarmente ma non so come fare... qualche idea/suggerimento?

Offline topix93

  • Utente junior
  • **
  • Post: 84
  • Respect: +1
    • Google+
    • Mostra profilo
  • Dispositivo Android:
    LG Optimus ONE
  • Sistema operativo:
    Windows 7 Professional 64 bit, Ubuntu 11.04
Re:rendere rettangolo(canvas) lampeggiante
« Risposta #1 il: 02 Settembre 2012, 15:43:42 CEST »
0
up

Offline undead

  • Utente senior
  • ****
  • Post: 666
  • Respect: +113
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S6
  • Play Store ID:
    DrKappa
  • Sistema operativo:
    Windows 10 64-bit, Windows 8.1 64-bit
Re:rendere rettangolo(canvas) lampeggiante
« Risposta #2 il: 02 Settembre 2012, 17:25:16 CEST »
0
Non mi piace il blink con l'if lo puoi semplificare. Se la vuoi fare semplice puoi prendere quel codice e fare alcune modifiche.

dichiari un:

float myTimer = 0;

poi nella draw fai un timestep fisso tipo:

Codice (Java): [Seleziona]
myTimer += 0.020f;

if( myTimer > 1 ){
    myTimer -= 1;
    blink = !blink;
}

Paint myPaint = new Paint();
myPaint.setColor(Color.RED);

if( blink)
myPaint.setColor(Color.BLUE);

// E qui disegni.

Offline topix93

  • Utente junior
  • **
  • Post: 84
  • Respect: +1
    • Google+
    • Mostra profilo
  • Dispositivo Android:
    LG Optimus ONE
  • Sistema operativo:
    Windows 7 Professional 64 bit, Ubuntu 11.04
Re:rendere rettangolo(canvas) lampeggiante
« Risposta #3 il: 04 Settembre 2012, 11:30:13 CEST »
0
thanks