, training, kijken we naar de code te schrijven aan boord van een voorproefje van toegang tot de camera' s, en Red de beelden op een androïde.Dit is de basis van de moderne smartphone; maar vaak zeer complexe camera 's en de kenmerken van de hele reeks – flash, witte evenwicht, de verscheidenheid van patroon, verschillende instagram foto' s stijl, en zelfs de gezichtsherkenning (alleen in de meest recente versie van de androïde, met inbegrip van de behandeling niet in deze Handleiding).Kijk in de camera parameters van API - gegevens kan spelen de kenmerken van alle handel met voorkennis.De parameters van de camera 's, en ook dat je wat gevonden is een functie van de hardware, ter ondersteuning van de aanvraag van je toevallig loopt.Als je weet dat je wat parameters /functie, en ze zijn allemaal op een soortgelijke wijze behandeld.Hoe behandelen ze gelezen, en laten we beginnen met de behandeling van het geheugen, flash, dit is misschien wel de meest gebruikte de functie van de camera 's.We creëren een, chooseflash (), de keuze van de methode van de flash:,, particuliere nietig chooseflash () {de laatste camera. Parameters = camera 's. Getparameters (); de definitieve lijst < snaren > flashmodelist = parameters. Getsupportedflashmodes (); als (flashmodelist = = nul) (///////geen flash.De laatste CharSequence terug;} [...] flashtext = flashmodelist. ToArray (nieuwe CharSequence [flashmodelist. Size (]); AlertDialog. Bouwer. = nieuwe AlertDialog.. (de); de bouwers. Settitle ("flash"); de bouwers. SetSingleChoiceItems (flashtext, 1, nieuwe dialoog op onclicklistener (). {de leegte onclick (dialoog, int) {parameters. Setflashmode (flashmodelist, (de)); de camera 's. Setparameters (params); de dialoog. Dismiss ();}}); de laatste waarschuwing aan de bouwers van de dialoog (); c =. Alarm. De show ();}, andere dingen doen voordat we moeten nagaan of er een patroon in alle getsuppor flash.Tedflashmodes ().Als de lijst is leeg, geen flash, we doen niets, als er een flash - en we hopen dat de gebruikers een keuze.Hier gebruiken we een waarschuwing dialoog te behandelen, maar kan je een andere keuze.We hebben de flash - lijst (...) een reeks tekens), in de AlertDialog. Generatoren, gebruik dan de bouwer van de methoden voor het vaststellen van de titel en het creëren van een knop te kiezen (,, setsinglechoiceitems (); je zou het creëren van een vakje of het gebruik van setitems (), voor De selectie van de lijst geen radio),,, in de keuze van hun favoriete flash, gebruiken we de dialoog voor het bepalen van de index van de onclicklistener, en van de lijsten van verplichtingen, flashmodelist, waarin de parameters.Omdat we de vertaling, flashmodelist, rechtstreeks met de AlertDialog bouwer CharSequence - keuze van de index van de waarschuwingen van de dialoog zal dezelfde indicatoren van het project, flashmodelist,.,, je moet de telefoon, camera 's. Setparameters (), na de parameters. Setflashmode (), te veranderen in werking treedt.En dan zijn we klaar, onclick (), de dialoog en het ontslag van de methoden om terug te keren naar het scherm.Tot slot, de bouw van een dialoog, we creëren en het aantonen, dynamische lay - out, de volgende vraag is hoe dit probleem aan de gebruiker.We kunnen bij de toepassing van de automatische werking van het begin van de procedure, maar dit is niet bijzonder geschikt voor de gebruikers.In de statische lay - out, kunnen we nog een XML -, maar als de apparatuur geen flash, dit is een groot scherm ruimte en zeer gebruikers niet vriendelijk.Integendeel, we kunnen met behulp van een dynamische planning - beheer van programma 's in de indeling hangt af van wat er gebeurt.,, om dit te doen, laten we het hier, chooseflash (), de methode, de laatste toevoeging van deze code te vervangen, alert. Show (), lijn, we zien De keuze van flash - lijst als op de knop, de hiërarchie. Lin = (element) findViewById (r.id.linearlayout); de knop flashbutton = nieuwe knop (dit); flashbutton. SetText ("Lightning"); flashbutton. Setlayoutparams (nieuwe LayoutParams (layoutparams.wrap_content, LayoutParams. Wrap_content)); lin.addview (flashbutton); flashbutton. Setonclicklistener (nieuwe perspectieven onclicklistener () {de leegte. Onclick (overzicht) (signalering. De show ();}}), zal je ook.Je vader moet in de hiërarchie van XML - toevoeging van een id - nummer:,, < hiërarchie xmlns:Android = "http://schemas.android.com/apk/res/android" Android:ID = "+ ID /element"...>,, pakte een verwijzing naar de code die elementen, de totstandbrenging van een "flash" knop, en voeg het toe aan de lay - out en waarschuwingen van de dialoog de druk op de knop.Hier kan je zien, kun je de lengte en breedte van de programmering van het gebruik van de knop,, setlayoutparams ().(deze zijn oog - groep. LayoutParams.) Verschillende constructeurs beschikbaar is; dit moet de breedte en lengte.Je kan gebruik maken van een LayoutParams subklassen van meer specifieke indeling van de bouw van een knop.), en van alle andere eigenschappen kan ook via het programma worden voorzien.Je kan het, bijvoorbeeld, om een beeld te geven van de knop in plaats van de tekst, het gebruik, de setbackgrounddrawable () (), in plaats van, settext, (of het gebruik van ImageButton, setimageresource (), in plaats van), en, ten slotte, we hebben. Dat we, setuplayout (). De methode:,, particuliere nietig setuplayout () {///////...Zoals eerder chooseflash ();}, samenstelling en werking van de hardware, je testen.En de scène, in de androïde met veel van de andere camera 's in het effect van de beschikbaarheid van de hardware, maar natuurlijk zal elke mobiele telefoon als anders.Deze omvatten antibanding ",, scène mode, richten, wacht.Voor een volledige lijst van parameters, de camera 's dossier.Ze zijn op dezelfde wijze geregeld en behandeling, dus laten we er snel een ander voorbeeld, een delict vormen.- met inbegrip van de partij portret, landschap, 's nachts, enz. – zie, getscenemode (), meer mogelijkheden voor documenten.De echte lijst kan de camera 's je type is anders.,, particuliere nietig choosescenemode () {de laatste camera. Parameters = camera' s. Getparameters (); de definitieve lijst < snaren > scenemodelist = parameters. Getsupportedscenemodes (); als (scenemodelist = = nul) (///////- geen scènes.De laatste CharSequence terug;} [...] scenemodetext = scenemodelist. ToArray (nieuwe CharSequence [scenemodelist. Size (]); AlertDialog. Bouwer. = nieuwe AlertDialog.. (de); de bouwers. Settitle ("de keuze van de plaats delict mode"); de bouw van scenemodetext. SetSingleChoiceItems (, 1, De nieuwe dialoog. Onclicklistener () (de leegte onclick (dialoog, int) {parameters. Setscenemode (scenemodelist, (de)); de camera 's. Setparameters (params); de dialoog. Dismiss ();}}); de laatste waarschuwing dialoog aan = bouwers) (); de hiërarchie. Lin = (element) findViewById (r.id.linearlayout knop); scenemodebutton = nieuwe knop scenemod (dit);Ebutton. SetText ("scenario 's"); scenemodebutton. Setlayoutparams (nieuwe LayoutParams (layoutparams.wrap_content, LayoutParams. Wrap_content)); lin.addview (scenemodebutton); scenemodebutton. Setonclicklistener (nieuwe horizon. Onclicklistener () {de leegte onclick (overzicht) (signalering. De show ();}});}, je kan. Zie, het is eigenlijk hetzelfde. Chooseflash ().Dus, er in feite een factor, chooseeffect (), op de vaststelling van de parameters in je als type naderings - en door een goed idee is.Probeer het als een nuttige oefening, kijk of je het kan in wat voor effect.), zou je ook willen kijken naar de verbetering van de distributie, in plaats van een visueel aantrekkelijk, en krijgt meer druk op de knop en het effect te vergroten.Bijvoorbeeld, misschien wil je er een glijdende menu 's, of in een rij knopen.In de toekomst zullen we in de les, statische en dynamische lay - out en, in bepaalde gevallen, of op verzoek van een gebruiker die menu 's en opties, meer details.
De androïde programma ontwikkeling: de verwerking van extra camera 's in de vorige
Next Page:Het gebruik van instrumenten