2013-01-03 21 views
6

sto usando colori a dita per disegnare la linea, e finora sono venuto su con il seguente codice:come riconoscere personaggio disegnato su tela

case MotionEvent.ACTION_MOVE: 
    //return if touch is in this area of canvas 
    if (x<=430 || y<=80 || y>=490) return true; 
    //draw path using x and y co-ordinates 
    mPath.quadTo(previousPoint.x, previousPoint.y, (x+previousPoint.x)/2,(y+previousPoint.y)/2); 
    canvas.drawPath(mPath, paint); 
    previousPoint.x = x; 
    previousPoint.y = y; 
    //invalidate canvas on move 
    imageView.invalidate(); 
    break; 
case MotionEvent.ACTION_UP: 
    Xend=x; 
    Yend=y; 
    //validate that is it true? 
    if((Xstart>=780 && Xstart<=830) && (Xend>=780 && Xend<=830) && (Ystart>=10 && Ystart<=200) && Yend<=800 && Yend>=300){ 
    //show toast if correct 
    Toast.makeText(getBaseContext(), "Correct", Toast.LENGTH_SHORT).show(); 
    }else{ 
    //show toast with XY co-ordinates that your attempt is wrong 
    Toast.makeText(getBaseContext(), "Wrong attempt\n Xstart: "+Xstart+"\n Xend:"+Xend+"\n Ystart: "+Ystart+"\nYend:"+Yend, Toast.LENGTH_SHORT).show(); 
    } 
    imageView.invalidate(); 
    break; 

Ma, purtroppo, il codice di cui sopra non soddisfa le mie esigenze. Voglio creare fogli di lavoro organizzati alfabeticamente, attraverso i quali l'utente procede al tocco. Mi piacerebbe sapere dove ha iniziato, dove si sta muovendo e dove ha finito per riconoscere ciò che ha disegnato sulla tela, so dove trovare i punti di contatto, ma il problema è come riconoscere ciò che è stato disegnato sulla tela? vuole riconoscere come questa app VisionObjects su Playstore. enter image description here

+0

Se hai dubbi su qualcosa in Android, prova innanzitutto a cercare un'app campione nei demo di apis ... è un buon punto di partenza. C'è un ottimo esempio qui per la gestione del tocco in Android. Questo è il percorso .. \ android-sdk-windows \ samples \ android-10 \ ApiDemos \ src \ com \ example \ android \ apis \ graphics \ FingerPaint.java – karn

+2

Qual è il punto del codice precedente (l'hai scritto tu stesso? ?), se non ha nulla a che fare con le tue esigenze? Ho anche problemi a capire la vera domanda: vuoi semplicemente tenere traccia dei movimenti del tocco? Come l'utente tocca lo schermo (inizio), muove il dito di 5 cm a sinistra (in movimento) e poi andiamo (fine)? – AgentKnopf

+0

grazie per la risposta guyz. – Hamad

risposta

0

per tenere traccia dei tre eventi si deve utilizzare:

  • MotionEvent.ACTION_DOWN alla pista dove l'evento è iniziato.
  • MotionEvent.ACTION_MOVE per tracciare i movimenti (strisciare).
  • MotionEvent.ACTION_UP per tracciare dove è stato interrotto l'evento.

Vedere this example. In mostra come disegnare un tracciato seguendo i movimenti.