tekening, in mijn laatste vraag de androïde code, een telefoontje van de code wordt gekenmerkt door het gebruik van de bewegingssensor en de capaciteit.Zoals ik in deze handleiding heeft betrekking op een sportevenement, net als jij, kan ook gebruik maken van de informatie van de sensor om je te veranderen in de beelden op het scherm.In deze handleiding, en we zullen zien hoe het opstellen van profielen in de robot, en een beetje meer versnellingsmeter verstrekte informatie, op twee manieren om de androïde; door het gebruik, of gebruik van mening.Deze handleiding zal gebruik maken van een definitie van de mening van de tekenen op het scherm van een mobiele bubbels, kijk linux.com op canvas en opsporing van follow - up aan de gebeurtenissen in kaart.Ik zal niet te veel te denken aan de details van de sensor; details van de laatste les.,, maken gebruik van mening en schuim, ten eerste, dat een gewoonte van mening in het oog:,, de uitbreiding van de cursussen BubbleView oog (particuliere eigendom en exploitatie van particuliere diameter; in de X, y en particuliere ShapeDrawable schuim van de BubbleView (context); - Super (het kader); createbubble (}); particuliere nietig createbubble () {x = 200; y = 300; diameter = 100; schuim = nieuwe ShapeDrawable (nieuwe ovalshape ()); schuim. Raam (x, Y en X + Y + diameter); schuim. Getpaint (instellingen). Kleur (0xff00cccc);} beschermde nietig ondraw (canvas schilderen) {super. Ondraw bubble.dra (.);W (.);}}, gebruiken we het gebruik van mening ShapeDrawable ovale vorm.Het toepassingsgebied van de twee belangrijke instellingen (in het kader van de ovale, hier, het plein, dus het Oval Office is een cirkel), en de kleuren van verf.En dan, ondraw (), ter dekking van de methode - - en dit is belangrijk, wordt elke keer bel oog getrokken.Hier, alles wat we doen is de telefoon, super, en trek het schuim.,, kunt u dit als het gebruik van deze code in je oog van de activiteiten van de openbare bubbleactivity uitbreiding:,, de activiteiten van de particuliere BubbleView {in BubbleView; de leegte oncreate (pakket savedinstancestate {-). OnCreate (savedinstancestate); BubbleView = nieuwe BubbleView (de); setContentView (BubbleView);}}, samenstelling en loopt, moet je zien in het centrum van het scherm, een blauwe schuim.(noot: ik vind het werk goed aan de telefoon, maar niet in de simulator.), XML - standpunten, gebruik de code, kan een gewoonte van mening van een andere methode is beschreven in het xsl.Dit is een eenvoudige XML - bestand, res/drawable/circle.xml, voortbouwend op het scherm een stevige blauwe ring:,, <?De XML - = "1" codering = "utf - 8"?> < vorm xmlns:Android = "http://schemas.android.com/apk/res/android" androïde: vorm = "ovale" > < vaste androïde: kleur = "# ff00cccc" /> < afmetingen: breedte:... "" 100dp androïde: lengte = "100dp" /> < /vorm >, om deze van je activiteiten, moet je meer dan je de code als de uitbreiding van mening:,, de lay - out van de particuliere hiërarchie; de leegte oncreate (pakket savedinstancestate {-). OnCreate (savedinstancestate); de layout = nieuwe element (de); ImageView ik = nieuwe ImageView (dit); i.setimageresource (r.drawable. Ring); i.setadjustviewbounds (echt); i.setlayoutparams (nieuwe galerij. LayoutParams (layoutparams.wrap_content, layoutparams.wraP_content)); de lay - out. AddView (ik); de lay - out. SETGRAVITY (Centrum); setContentView (lay - out);}, dat voorziet in de oprichting van een nieuwe lay - out en foto 's, en aan het dossier naar de definitie van res/drawable/circle.xml ImageView beeld.Setadjustviewbounds (), die, voor ImageView grenzen geometrie van dezelfde grootte.Dan hebben we een indeling van de parameters van de inhoud van de verpakking, en de toevoeging van ImageView lay - out.De werking van deze, zie je links boven het scherm met een vaste kring.Zet het op het scherm van de centrale, toe te voegen aan de lijn,,, lay - out. SETGRAVITY (het centrum); het gebruik van XML -,,, je kan nog steeds een goed beeld, zo 'n schaduw ring:,, <?De XML - = "1" codering = "utf - 8"?> < vorm xmlns:Android = "http://schemas.android.com/apk/res/android" androïde: vorm = "ovale" > < gradiënt androïde de startcolor = "# ff0000cc" Android:endcolor = "# ff00cccc" androïde: type = "van de" - gradientradius = "100" /> < afmetingen: breedte: "200dp androïde 'androïde: lengte =" 200dp "/> < /vorm >,, maar dit is echt geldt slechts voor de in de vorm van statische, als we willen dat het verplaatsen van een.Dus, we houden van onze persoonlijke mening, mobiele en sensoren, nu hebben we ons speciaal oog en schuim, de volgende stap is een sensor die bal vangen, en de versnelling.Laten we wat werk te doen, bubbleactivity, basisopleiding bubbleactivity uitbreiding van activiteiten door de sensoreventlistener (particuliere SensorManager manager, particuliere BubbleView BubbleView; particuliere - versnelling, de leegte oncreate (pakket savedinstancestate {-). OnCreate (savedinstancestate); BubbleView = nieuwe BubbleView (de); setContentView (BubbleView); directeur van getSystemService (= (SensorManager) sensor_service); versnelde = manager. Getdefaultsensor (sensoren. Type_accelerometer); directeur. Registerlistener (dit, accel, SensorManager. Sensor_delay_game);} de leegte onaccuracychanged (sensoren, precisie) {///////niets doen, het kan ons niet schelen leegte onsensorchanged (sensoren)Om te voorkomen dat de gebeurtenissen) {BubbleView. Mobiele (gebeurtenis. Een waarde van [0], [1]. Waarden); BubbleView. Invalidate (}); beschermde nietig onresume () {super. Onresume (); de manager. Registerlistener (dit, accel, SensorManager. Sensor_delay_game);} beschermde nietig onpause () {super. Onpause (); directeur unregisterlistener (de).;)}, door de laatste les, we zullen sensoreventlistener, betekent dit dat de uitvoering van onaccuracychanged (), onsensorchanged ().We krijgen ook SensorManager, oncreate (,, pak de versnellingsmeter) en de registratie van luisteraars.Het is belangrijk om te onthouden dat de annulering van het onpause (), de registratie, het onresume (), om te voorkomen dat de operatie, door je batterij. En als er iets gebeurt, dat sensorevent er drie waarden: de X, y - en z - as in de API - definitie).We BubbleView door de X - en Y - richting.Laten we gaan kijken, BubbleView. ():,, beschermde nietig mobiele (drijven f, drijvende g) {x = (int) (X + F); y = (int) (y + g); schuim. Raam (x, Y en X + Y + diameter);},, als Je probeert te vluchten, dan zou je zien dat vanuit het oogpunt van het landschap, een portret van mobiele apparatuur voor je.Om dit te vermijden, redacteur van XML -, ziet er als volgt uit:,,...< activiteiten - naam = ". Bubbleactivity" Android:screenorientation = portret "androïde label =" @ string /title_activity_bubble ">...Nogmaals, je ziet het werk vinden, zoals verwacht, het centrum en de rand van de schermen, gebruiken we de waarde van harde code van het schuim, maar idealiter zou het begin in het centrum van het scherm.Helaas, de coördinaten van de linker scherm, dus we moeten zoeken naar schermgrootte: apparatuur, de breedte van de hoogte, particuliere; particuliere; particuliere nietig createbubble () {WindowManager wm = (.) ctx. GetSystemService (context. Window_service); display = Wm. Getdefaultdisplay (); de omvang van het nieuwe punt = (de); vermeld. Getsize (overgangsbepalingen); W = (grootte. X) /2; lengte = (grootte. Y) /2; x = Y = breedte, lengte, diameter = 100; schuim = nieuwe ShapeDrawable (nieuwe ovalshape ()); schuim. Raam (x, Y, X + diameter en de y + diameter); schuim. Getpaint (). De kleur (0xff74ac23);}, vereist dit de API - 13; als je liever wacht op een lagere API, kun je, getwidth (),Maar, getheight (), integendeel, het is nu verlaten, vindt u ook, bel afwijkt van het scherm.De code is een beetje eigen experiment (log - lijn kan nuttig zijn, op zoek naar de methoden om deze te vermijden).Je kan ook gebruik maken van de sensorevent z - waarde (geval. Een waarde van [2],) bubbel van de campagne.Met het toenemend aantal speel je code, je weet hoe het werkt.
Hoe bereid je een 2d androïde beweging sensoren
Previous:Een van
Next Page:Hoe om te gaan met uw gastheer van Linux