2013-01-03 23 views
6

Używam farby palcem narysować linię, a więc daleko I mają pochodzić z następującego kodu:jak rozpoznać charakter narysowane na płótnie

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; 

Ale niestety, powyższy kod nie spełnia moje wymagania. Chcę tworzyć alfabetycznie uporządkowane arkusze, za pomocą których użytkownik przechodzi przez dotyk. Chciałbym wiedzieć, gdzie on się rozpoczął, dokąd się udaje i gdzie kończy się, aby rozpoznać, co narysował na płótnie, wiem, gdzie zdobyć punkty dotykowe, ale problem polega na tym, jak rozpoznać, co zostało narysowane na płótnie? chce rozpoznać taką aplikację na playstore. enter image description here

+0

Jeśli masz wątpliwości co do czegoś w Androidzie, spróbuj najpierw pobrać przykładową aplikację na apisie ... to dobre miejsce na początek. Jest tutaj bardzo dobry przykład do obsługi dotyku w systemie Android. To jest ścieżka .. \ android-sdk-windows \ samples \ android-10 \ ApiDemos \ src \ com \ example \ android \ apis \ graphics \ FingerPaint.java – karn

+2

Jaki jest sens powyższego kodu (napisałeś to sam ?), jeśli nie ma to nic wspólnego z Twoimi wymaganiami? Mam również problemy ze zrozumieniem faktycznego pytania: Czy po prostu chcesz śledzić ruchy dotykowe? Takich jak użytkownik dotyka ekranu (start), przesuwa palec o 5 cm w lewo (w ruchu), a następnie idziemy (koniec)? – AgentKnopf

+0

thanx for guyz reply. – Hamad

Odpowiedz

0

śledzić trzy wydarzenia trzeba korzystać:

  • MotionEvent.ACTION_DOWN śledzić gdzie rozpoczęła się impreza.
  • MotionEvent.ACTION_MOVE śledzenie ruchów (przeciągnięcie).
  • MotionEvent.ACTION_UP śledzenie miejsca zatrzymania zdarzenia.

Zobacz this example. Pokazuje, jak narysować ścieżkę, śledząc ruchy.