2013-01-03 11 views
6

i Farbe bin mit dem Finger Linie zu zeichnen, und Bis jetzt habe ich mit folgendem Code kommen:, wie man Zeichen auf Leinwand gezogen erkennen

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; 

Aber leider der obige Code meine Anforderungen nicht erfüllt. Ich möchte alphabetisch geordnete Arbeitsblätter erstellen, durch die der Benutzer per Berührung fortschreitet. Ich würde gerne wissen, wo er angefangen hat, wohin er zieht und wo er aufhört zu erkennen, was er auf die Leinwand gezeichnet hat, ich weiß, wo man Berührungspunkte bekommt, aber das Problem ist, wie man erkennt, was auf die Leinwand gezeichnet wurde. will diese VisionObjects App auf Playstore erkennen. enter image description here

+0

Wenn Sie im Zweifel über etwas in Android sind, versuchen Sie zuerst für eine Beispiel-App in den Apis Demos suchen ... es ist ein guter Ort, um zu beginnen. Es gibt ein sehr gutes Beispiel für die Handhabung von Touch in Android. Dies ist der Pfad .. \ android-sdk-windows \ Beispiele \ android-10 \ ApiDemos \ src \ com \ Beispiel \ android \ apis \ graphics \ FingerPaint.java – karn

+2

Was ist der Sinn des obigen Codes (hast du das selbst geschrieben? ?), wenn es nichts mit Ihren Anforderungen zu tun hat? Ich habe auch Probleme, die eigentliche Frage zu verstehen: Willst du einfach Touch-Bewegungen verfolgen? So wie der Benutzer den Bildschirm berührt (Start), bewegt seinen Finger 5cm nach links (bewegt sich) und dann gehen wir (Ende)? – AgentKnopf

+0

Danke für die Antwort guyz. – Hamad

Antwort

0

die drei Ereignisse verfolgen Sie verwenden müssen:

  • MotionEvent.ACTION_DOWN zu verfolgen, wo das Ereignis begonnen.
  • MotionEvent.ACTION_MOVE, um die Bewegungen zu verfolgen (Swipe).
  • MotionEvent.ACTION_UP zu verfolgen, wo das Ereignis gestoppt wurde.

Siehe this example. In zeigt, wie man einen Pfad zeichnet, indem man die Bewegungen verfolgt.

Verwandte Themen