Atnaujinta: 2020 m. Sausio mėn.
Šio pradedančiojo „Android Studio“ įvado 1 dalyje jūs sukūrėte „Android Studio“ savo kūrimo aplinkoje ir susipažinote su vartotojo sąsaja. Dabar 2 dalyje užkoduosite savo pirmąją programą.
Animacinę programą mobiliesiems sudaro viena veikla, kurioje pateikiamas „Google“ „Android“ roboto simbolis ir mygtukas, skirtas simboliui animuoti. Spustelėjus mygtuką, simbolis palaipsniui keičia spalvą iš žalios į raudoną į mėlyną, tada vėl į žalią. Nors programa nėra ypač naudinga, jos rašymas padės patogiau naudotis „Android Studio“. 3 dalyje sukursite ir paleisite programą naudodami „Android“ įrenginio emuliatorių ir „Kindle Fire“ planšetinį kompiuterį.
Atminkite, kad ši serija buvo atnaujinta „Android Studio 3.2.1“, šiuo metu stabiliai išleidžiamam šio rašymo metu.
„Android Studio“ projekto ir redaktoriaus langai
Aš pristatiau „Android Studio“ pagrindinį langą 1 dalies pabaigoje. Šis langas yra padalintas į kelias sritis, įskaitant „Project“ langą, kuriame nurodote programos išteklių failus, ir įvairius redaktoriaus langus, kuriuose rašysite kodą ir nurodysite mobiliųjų programų išteklius. „Android Studio“. Projekto langas ir redaktoriaus langas parodyti 1 paveiksle.

Paryškinamas projekto langas W2A, kuris yra programos pavadinimas W2A.java
šaltinio failas (nors .java
failo plėtinys nerodomas). Atitinkantis W2A yra redaktoriaus langas, pasiekiamas dukart spustelėjus W2A projekto lange. Redaktoriaus lange rodomas dabartinis failo turinys, šiuo atveju pagrindinės programos pagrindinės programos Java šaltinio kodas.
Kiekvienas redaktoriaus langas susietas su skirtuku. Pavyzdžiui, W2Aredaktoriaus langas susietas su a W2A.java skirtuką. Antrasis skirtukas identifikuotas kaip main.xml (numatytasis XML pagrįstas programos pagrindinės veiklos išdėstymas) taip pat rodomas. Norėdami pereiti iš vieno redaktoriaus lango į kitą, spustelėkite lango skirtuką.
atsisiųsti Gauti kodą Atsisiųskite „Android“ pavyzdinės programos šaltinio kodą: W2A.java. Sukūrė Jeffas Friesenas, skirtas „JavaWorld“.„Android“ programos pavyzdys
Programos pavyzdys (W2A.java) susideda iš pagrindinės veiklos, kurioje rodomas „Android“ roboto simbolis, ir mygtuko. Kai vartotojas paspaudžia mygtuką, robotas animuoja per daugybę spalvų. Šiame skyriuje ištirsime veiklos šaltinio kodą ir išteklius.
Naršykite ir užkoduokite „Android“ programos pavyzdį
Veiklos šaltinio kodas saugomas faile W2A.java
, pateiktas 1 sąraše.
1 sąrašas. W2A.java
paketas ca.javajeff.w2a; importuoti android.app.Activity; importuoti android.graphics.drawable.AnimationDrawable; importuoti android.os.Bundle; importuoti android.view.View; importuoti android.widget.Button; importuoti android.widget.ImageView; viešoji W2A klasė pratęsia veiklą {AnimationDrawable androidAnimation; @Paisyti viešą negaliojimą onCreate (paketas išsaugotasInstanceState) {super.onCreate (išsaugotasInstanceState); setContentView (R.layout.main); ImageView androidImage = (ImageView) findViewById (R.id.android); androidImage.setBackgroundResource (R.drawable.android_animate); androidAnimation = (AnimationDrawable) androidImage.getBackground (); galutinis mygtukas btnAnimate = (mygtukas) findViewById (R.id.animate); View.OnClickListener ocl; ocl = new View.OnClickListener () {@Paisyti viešą negaliojančią onClick (View v) {androidAnimation.stop (); androidAnimation.start (); }}; btnAnimate.setOnClickListener (ocl); }}
W2A.java
failas prasideda a paketo išrašas, kuris pavadina pakuotę (ca.javajeff.w2a
), kuriame saugomi W2A
klasė. Po to pateikiama įvairių tipų „Android“ API importavimo ataskaitų serija. Toliau kodas apibūdina W2A
klasė, kuri tęsiasi android.app.Activity
.
W2A
pirmiausia pareiškia an androidAnimacija
tipo lauko laukas android.graphics.drawable.AnimationDrawable
. Tipo objektai AnimacijaPiešiama
apibūdinkite animaciją kadre po kadro, kuriame dabartinis piešiamasis pakeičiamas kitu piešiamuoju animacijos sekoje.
Kas yra piešiama?
A ištraukiamas yra kažkas, ką galima nupiešti, pavyzdžiui, vaizdas. AnimacijaPiešiama
netiesiogiai pratęsia abstraktą android.graphics.drawable.Drawable
klasė, kuri yra bendra piešimo abstrakcija.
OnCreate () metodas
Visas programos darbas vyksta W2A
yra svarbesnis „onCreate“ (paketas)
metodas: nereikia jokių kitų metodų, o tai padeda paprastą šią programą.
„onCreate“ (paketas)
pirmiausia remiasi tuo pačiu pavadintu superklasės metodu - taisykle, kurios turi laikytis visi svarbesni veiklos metodai.
Šis metodas tada vykdomas „setContentView“ (R.layout.main)
nustatyti programos vartotojo sąsają. R.layout.main
yra programos ištekliaus, kuris yra atskirame faile, identifikatorius (ID). Šį ID aiškinate taip:
R
yra klasės, sugeneruotos kuriant programą, pavadinimas. Ši klasė pavadintaR
nes jo turinys identifikuoja įvairius programų išteklius, įskaitant maketus, vaizdus, eilutes ir spalvas.išdėstymas
yra klasės, kurioje įdėta, pavadinimasR
. Programos išteklius, kurio ID saugomas šioje klasėje, apibūdina konkretų išdėstymo šaltinį. Kiekviena programų išteklių rūšis yra susieta su įdėta klase, kuri pavadinta panašiai. Pavyzdžiui,stygos
nustato eilutės išteklius.pagrindinis
yra vardastarpt
pagrindu deklaruojama konstantaišdėstymas
. Šis šaltinio ID identifikuoja pagrindinį išdėstymo šaltinį. Tiksliau,pagrindinis
reiškia amain.xml
failas, kuriame saugoma pagrindinės veiklos išdėstymo informacija.pagrindinis
yraW2A
vienintelis maketo šaltinis.
Praeina R.layout.main
į Veikla
's void setContentView (int layoutResID)
metodas nurodo „Android“ sukurti vartotojo sąsajos ekraną, naudodamasis saugoma išdėstymo informacija main.xml
. Užkulisiuose „Android“ sukuria vartotojo sąsajos komponentus, aprašytus main.xml
ir padeda juos prietaiso ekrane, kaip nurodyta main.xml
maketo duomenys.
Ekrano pagrindas yra Peržiūrų (vartotojo sąsajos komponentų abstrakcijos) ir nuomonių grupės (peržiūri grupuojamus vartotojo sąsajos komponentus). Peržiūrų yra klasių, kurios subklasė android.view.View
klasės ir yra analogiški AWT / Swing komponentams. Peržiūrėti grupes yra klasių, klasifikuojamų abstrakčiai, atvejai android.view.ViewGroup
klasės ir yra analogiški AWT / Swing konteineriams. „Android“ nurodo konkrečius rodinius (pvz., Mygtukus ar suktukus) kaip raštai.
Tęsiant, „onCreate“ (paketas)
vykdo ImageView androidImage = (ImageView) findViewById (R.id.android);
. Šis pareiškimas pirmiausia ragina Vaizdas
's Peržiūrėti „findViewById“ (int id)
metodas rasti android.widget.ImageView
deklaruotas elementas main.xml
ir identifikuota kaip androidas
. Tai akimirksniu „ImageView“
ir inicializuoja jį į main.xml
failą. Tada sakinys išsaugo šio objekto nuorodą vietiniame kintamajame androidImage
.
„ImageView“ ir „AnimationDrawable“
Kitas, androidImage.setBackgroundResource (R.drawable.android_animate);
pareiškimas kviečia „ImageView“
paveldėtas (iš Vaizdas
) void setBackgroundResource (int resID)
metodas, nustatant rodinio foną pagal išteklius, kuriuos identifikuoja resID
. R.piešiamas.android_animinas
argumentas identifikuoja XML failą pavadinimu android_animate.xml
(pateikiama vėliau), kurioje saugoma informacija apie animaciją ir kuri saugoma res
's ištraukiamas
pakatalogis. setBackgroundResource ()
skambučio nuorodos androidImage
peržiūrėti vaizdų seką, aprašytą android_animate.xml
, kuri bus parengta pagal šį vaizdą. Pradinis vaizdas yra nupieštas dėl šio metodo iškvietimo.
„ImageView“
leidžia programai animuoti mokamų sekų skaičių skambinant AnimacijaPiešiama
metodai. Kad programa galėtų tai padaryti, ji turi ją gauti „ImageView“
's AnimacijaPiešiama
. androidAnimation = (AnimationDrawable) androidImage.getBackground ();
paskesnis priskyrimo sakinys įvykdo šią užduotį iškviesdamas „ImageView“
paveldėtas (iš Vaizdas
) Piešiamas „getBackground“ ()
metodas. Šis metodas pateikia AnimacijaPiešiama
duotam „ImageView“
, kuris vėliau priskiriamas androidAnimacija
srityje. AnimacijaPiešiama
egzempliorius naudojamas pradėti ir sustabdyti animaciją, procesą aprašysiu netrukus.
Pagaliau, „onCreate“ (paketas)
sukuria Animuoti mygtuką. Tai kviečia „findByViewId“ (int)
gauti mygtuko informaciją iš main.xml
, tada akimirksniu android.widget.Button
klasė.
Tada jis naudoja Vaizdas
klasės lizdai „onClickListener“
sąsaja sukurti klausytojo objektą. Šis objektas yra void onClick (Peržiūrėti v)
metodas yra naudojamas, kai vartotojas paspaudžia mygtuką. Klausytojas yra užregistruotas jo Mygtukas
prieštarauti skambinant Vaizdas
's void setOnClickListener („AdapterView.OnClickListener“ klausytojas)
metodas.
Norėdami sustabdyti, tada paleiskite animaciją, Animuotipaspaudimų klausytojas iškviečia androidAnimation.stop ();
paskui androidAnimation.start ();
. sustabdyti()
metodas vadinamas anksčiau pradžia ()
užtikrinti, kad paskesnis Animuoti mygtukas sukelia naujos animacijos pradžią.
Atnaujinkite ir išsaugokite kodą
Prieš tęsdami, pakeiskite skeleto kodą savo W2A.java skirtuką su kodu iš sąrašo 1. Išsaugokite šio lango turinį paspausdami „Ctrl“ + Sarba pasirinkite Išsaugoti viską nuo Failas Meniu.
Koduojamas „Android“ programos main.xml
Pagrindinė programos veikla yra susieta su XML pagrindu sukurtu išdėstymu, kuris saugomas faile main.xml
ir kuris pateiktas 2 sąraše.
2 sąrašas. main.xml
Po XML deklaracijos 2 sąraše skelbiama a Linijinis išdėstymas
elementas, nurodantis a išdėstymas (peržiūros grupė, kuri tam tikru būdu sutvarko uždaras peržiūras „Android“ įrenginio ekrane), kad būtų galima išdėstyti ribotus valdiklius (įskaitant įdėtus maketus) horizontaliai arba vertikaliai visame ekrane.
žymoje nurodomi keli atributai, skirti valdyti šį tiesinį išdėstymą. Šie atributai apima:
orientacija
identifikuoja linijinį išdėstymą horizontaliu arba vertikaliu. Sudėtiniai valdikliai yra išdėstyti horizontaliai arba vertikaliai, o numatytoji orientacija yra horizontali.„horizontalus“
ir„vertikalus“
yra vienintelės teisinės vertės, kurias galima priskirti šiam atributui.išdėstymo_ plotis
identifikuoja maketo plotį. Teisinės vertybės apima„fill_parent“
(kad būtų toks pat platus kaip ir tėvas) ir„wrap_content“
(kad būtų pakankamai platus, kad būtų galima uždėti turinį). (Prisimink taiužpildyti_tėvą
buvo pervadinta įmatch_parent
„Android 2.2“, bet vis tiek palaikoma ir plačiai naudojama.)išdėstymas_aukštis
nustato maketo aukštį. Teisinės vertybės apima„fill_parent“
(kad būtų toks pat aukštas kaip ir tėvas) ir„wrap_content“
(kad būtų pakankamai aukštas, kad uždarytų turinį).gravitacija
identifikuoja, kaip išdėstymas išdėstomas ekrano atžvilgiu. Pavyzdžiui,„centras“
nurodo, kad maketas ekrane turėtų būti sutelktas horizontaliai ir vertikaliai.fonas
identifikuoja fono vaizdą, gradientą arba vientisą spalvą. Paprastumo dėlei aš sunkiai užkodavau šešioliktainį spalvų identifikatorių, kad pažymėčiau vientisą baltą foną (#ffffff
). (Spalvos paprastai būtų saugomosspalvos.xml
ir nurodytas iš šio failo.)
Linijinis išdėstymas
elementas susikaupia „ImageView“
ir Mygtukas
elementai. Kiekvienas iš šių elementų nurodo id
atributas, kuris identifikuoja elementą, kad jį būtų galima nurodyti iš kodo. išteklių identifikatorius (speciali sintaksė, prasidedanti @
), priskirtas šiam atributui, prasideda @ + id
priešdėlis. Pavyzdžiui, @ + id / android
identifikuoja „ImageView“
elementas kaip androidas
; šis elementas nurodomas iš kodo nurodant R.id.androidas
.
Šie elementai taip pat nurodo išdėstymo_ plotis
ir išdėstymas_aukštis
atributus, nustatančius, kaip išdėstomas jų turinys. Kiekvienas atributas yra priskirtas wrap_content
kad elementas atrodytų natūralaus dydžio.
„ImageView“
nurodo a layout_marginBottom
atributas identifikuoja tarpų tarp vertikaliai einančio mygtuko. Vieta nurodyta kaip 10 panirimasarba nuo tankio nepriklausomi pikseliai. Tai yra virtualūs pikseliai, kuriuos programos gali naudoti išdėstymo matmenims / pozicijoms išreikšti nepriklausomai nuo ekrano tankio.
Nuo tankio nepriklausomi pikseliai
A nuo tankio nepriklausomas pikselis (dip) prilygsta vienam fiziniam pikseliui 160 dpi ekrane, kurio bazinis tankis laikomas „Android“. Vykdymo metu „Android“ skaidriai tvarko bet kokių reikiamų panardinimo vienetų mastelius, atsižvelgdama į faktinį naudojamo ekrano tankį. Dip vienetai konvertuojami į ekrano taškus pagal lygtį: pikseliai = kritimai * (tankis / 160). Pavyzdžiui, 240 taškų colio ekrane 1 kritimas yra lygus 1,5 fizinio taško. „Google“ rekomenduoja naudoti programos vienetus, kad apibrėžtų jūsų programos vartotojo sąsają, kad būtų užtikrintas tinkamas vartotojo sąsajos rodymas skirtinguose įrenginio ekranuose.