code - scherm is eenvoudig, robot, een moordenaar, dus misschien wil je meer aan je.Zoals in de vorige les over, "hoe om te gaan met een aanraking, kun je de code te schrijven met de analyse van meerdere punten gebeurtenissen.Maar in het algemeen - raak gebaar, zoals in het geval van dubbele klik, rollen en geduld, je kan ook met een gesturedetector vereenvoudiging van het probleem.Lezen, voor meer over gesturedetector gebaar, de uitvoering van gesturedetector opsporen.,,, hier is een zeer fundamentele gesturedetector in de eerste plaats de uitvoering van, het is gewoon een gebaar van informatie, in de loop van gestureexample logboek:, uitbreiding van activiteiten door de gesturedetector.ongesturelistener, gesturedetector.ondoubletaplistener (particuliere gesturedetector detector; particuliere string - = "gestureexample beschermde nietig onCreate"; (- savedinstancestate {-). OnCreate (savedinstancestate); setContentView (r.layout. Activity_gesture_example); - = nieuwe gesturedetector (dit); de detector. Setondoubletaplistener (de) p);De boer onTouchEvent (de verplaatsing van de detector (e). OnTouchEvent (e); terug naar super. OnTouchEvent); (e) de Boolcaanse (de verplaatsing van e) {logboek. D (het etiket ":" + E tostring ()); terug waar;} de Boolcaanse onfling (de verplaatsing van E1, E2 de verplaatsing van de snelheid van de lucht een kloof, die, velocityy) {logboek. D (etikettering, "onfling:" + E1. Tostring () + E2. Tostring ()); terug waar;} de leegte onlongpress (de verplaatsing van e) {logboek. D (etikettering, "onlongpress:" + E tostring ());} de Boolcaanse onscroll (de verplaatsing van de verplaatsing van distancex E1, E2, drijvend, drijvende distancey (log). D (etikettering, "onscroll:" + E1. Tostring () + E2. Tostring ()); terug waar;} de leegte van deOwpress (de verplaatsing van e) {logboek. D (etikettering, "onshowpress:" + E tostring ());} de Boolcaanse onsingletapup (de verplaatsing van e) {logboek. D (etikettering, "onsingletapup:" + E tostring ()); terug waar;} de Boolcaanse ondoubletap (de verplaatsing van e) {logboek d (etikettering ". Ondoubletap:" + E tostring ()); terug waar;} de Boolcaanse ondoubletapevent (de verplaatsing van e) {logboek. D (etikettering, "ondoubletapevent:" + E tostring ()); terug waar;} de Boolcaanse onsingletapconfirmed (de verplaatsing van e) {etiket d (log. "Onsingletapconfirmed:" + E tostring ()); terug;}}, een aanzienlijk deel van de code hier, maar het belangrijkste is om veel gebaar gebeurtenissen.In de oncreate (), dat nodig is om een nieuwe gesturedetector, en beschouwt het als een ondoubletaplistener (het zal automatisch aan de OnGestureListener).En dan, ontouchevent (), de sonde. OnTouchEvent (e), de lijn is van cruciaal belang.Zonder deze, zonder een gebeurtenis zal worden toegezonden aan de detector ontworpen, niet je gebaar methode zal lopen.Bel de ouders na de uitvoering, is het van essentieel belang is. De methode, gebaren, gescheiden OnGestureListener (,,, onfling ondown () () (), onlongpress,,, onscroll () () onshowpress,,,,,, onsingletapup ()) en ondoubletaplistener (, ondoubletap () (), ondoubletapevent,,,, onsingletapconfirmed,).Dubbele TAP van de gebeurtenissen is gebruikt om een onderscheid te maken tussen een dubbele TAP en een duidelijke interne TAP (dat wil zeggen één TAP, dit is niet door een tweede TAP).Je kan ook op de gebeurtenissen in de verschillende delen van ondoubletapevent (), in ieder geval in de vorm van een kraan deel (met inbegrip van methode brand, en mobiele gebeurtenissen), terwijl de ondoubletap (), een gebaar van de volledige reeks gebeurtenissen creëren, hoewel de verplaatsing van de parameters van de eerste gebeurtenis is alleen De kraan.In deze kan je helpen zich aan te passen aan de toepassing van je precies de verwachtingen van de gebruikers. Simpleongesturelistener,,,, het gebruik van OnGestureListener en ondoubletaplistener, je moet creëren, al deze methoden, zelfs als je ze niet gebruikt.Als je wil dat een van hen, je kan worden verlengd, simpleongesturelistener, integendeel.Dit alles is voor de verwezenlijking van de methode van toezicht, en voor al die mensen terug.Je schrijft alleen je eigen methoden, alleen voor jou zorgen die gebaren.Dat moet je uitvoeren, ondown (), valse of andere gebaar kunnen worden genegeerd, omdat, ondown (), in alle acties van start gaat.Als het vals is, in het geval van "consumptie" (geen andere gebaar methode), het gebruik van simpleongesturelistener. Hier, in de gevallen en gestureexample: uitbreiding van activiteiten (particuliere gesturedetector detector; particuliere string - = "; gestureexample" beschermde nietig oncreate (pakket savedinstancestate {-). OnCreate (savedinstancestate setContentView); (r.layout. Activity_gesture_example); - = nieuwe gesturedetector (het nieuwe myexamplegesturelistener ());} de Boolcaanse onTouchEvent (de verplaatsing van de detector (e). OnTouchEvent (e); terug naar super. OnTouchEvent (e); uitbreiding van particuliere gesturedetector.simpleongesturelistener klasse myexamplegesturelistener {}De laatste reeks etikettering = "megL"; de openbare booleaanse (de verplaatsing van e) {logboek. D (het etiket ":" + E tostring ()); terug waar;} de Boolcaanse onscroll (de verplaatsing van de verplaatsing van distancex E1, E2, drijver distancey) {D (etikettering, het logboek. "Onscroll:" + E1. Tostring () + E2. Tostring ()); terug waar;}}}, en de rest van de training, kun je de code vastgesteld voor de uitvoering van deze je.,, gebruik het geval, nu moeten we een code bubblemove hergebruik van programma 's voor de training. Trek een bel, en dan op een geschrift van gebaren.We doen simpleongesturelistener, te voorkomen dat de uitvoering van alle andere methoden, maar je kan OnGestureListener zoals hierboven.We gaan het gebaar van de belangrijkste activiteiten van de code, en naar binnen te gaan.Dus gestureexample nu ziet er als volgt uit:,, de les gestureexample uitbreiding van activiteiten (beschermde nietig oncreate (pakket savedinstancestate {-). OnCreate (savedinstancestate); setContentView (nieuwe gestureexampleview (dit));}},,, al het werk in de gestureexampleview:,, de les te gestureexampleview SurfaceView call - back - {SurfaceHolder particuliere uitbreiding. SurfaceHolder sh; particuliere uiteindelijk verf = nieuwe verven. Anti_alias_flag); particuliere gesturedetector detector; particuliere bubblex = 100; particuliere bubbley = 200; particuliere bubblediam = 50; de openbare gestureexampleview (context) {Super (het kader); - = getholder (s);H.addcallback (de); setlongclickable (echt); verf. De kleur (kleur. Blauw); verf. SetStyle (stijl. Vul); - = nieuwe gesturedetector (achtergrond), de nieuwe myexamplegesturelistener (}); de leegte surfacecreated (SurfaceHolder houder) {}); ///////drawbubble (Ook de verwezenlijking van surfacechanged () en surfacedestroyed (de) (blanco) particuliere ongeldig drawbubble () {canvas, enz.); lockcanvas (het canvas. Drawcolor (kleur. De zwarte); het canvas ronde (bubblex, bubbley, bubblediam, verf); sh.unlockcanvasandpost (.);} de Boolcaanse onTouchEvent (de Verplaatsing van de detector (e). OnTouchEvent (e) - onTouchEvent; terug. (e); uitbreiding van dergelijke myexamplegesturelistener ges}Turedetector.simpleongesturelistener {Boolcaanse (de verplaatsing van e) {terug waar;} de Boolcaanse onscroll (de verplaatsing van de verplaatsing van distancex E1, E2, drijver distancey) {bubbley = bubbley - (int) distancey; drawbubble (); terug waar;}}}, is een bijzonder belangrijke gestureexampleview fabrikant:,, setlongclickable (echt); en, niet op dit punt enige beweging, zie je de gebeurtenissen, ondown (), alles zal worden genegeerd.(deze lijn moet een speciaal oog, maar niet een gewone belangrijkste activiteiten.), en daarnaast alles in deze handleiding of van een bekend, creëren we een tafel, een bel, en de oprichting van een gesturelistener.Nogmaals, dat is belangrijk ondown (), terug.Dan gebruiken we de afstand van de y - y mobiele schuim, en opnieuw, voor de illusie.Opgemerkt moet worden dat, distancey, de afstand is, sinds de laatste oproep van de y - as, onscroll (), en E1, is de eerste neerwaartse beweging van de gebeurtenissen, begon te rollen, E2, is de huidige gebeurtenissen voor de huidige onscroll (), de telefoon.Aangezien de Vortex bestaat uit een reeks, onscroll (), telefoon, distancey, in tegenstelling tot de afstand tussen dezelfde y, E1, E2,,,,, en onder het schuim op de zijkant, natuurlijk kan je alleen nog op een rij:,, bubblex = bubblex - (int) distancex; meer, je kan spelen, van de andere activiteiten, zien hoe ze werken, misschien wil je schuim op in plaats van een kraan, bijvoorbeeld, gesturedetectorcompat.,,, in feite, hoewel deze code goed werk, nieuwe robot - versie, nu dat, waar mogelijk, gebruik je gesturedetectorcompat ter ondersteuning van de bibliotheek, de verhoging van de oude versie van de compatibiliteit met de androïde.In deze reeks van de volgende training, om meer te weten te komen over hoe het draagvlak en gebundeld, met uw aanvraag.
Hoe laat... - raak gesturedetector
Previous:Meer