Atjaunināts: 2020. gada janvāris.
Šī iesācēja Android Studio ievaddaļas 1. daļā jūs savā attīstības vidē iestatījāt Android Studio un iepazinās ar lietotāja saskarni. Tagad 2. daļā jūs kodēsiet savu pirmo lietotni.
Animētā mobilā lietotne sastāv no vienas darbības, kurā tiek parādīts Google Android robota raksturs un poga rakstzīmes animēšanai. Noklikšķinot uz pogas, raksturs pamazām maina krāsu no zaļas uz sarkanu līdz zilai, pēc tam atkal uz zaļu. Kaut arī lietotne nav īpaši noderīga, tās rakstīšana palīdzēs jums ērti izmantot Android Studio. 3. daļā jūs izveidosiet un palaidīsit lietotni, izmantojot Android ierīces emulatoru un Kindle Fire planšetdatoru.
Ņemiet vērā, ka šī sērija ir atjaunināta operētājsistēmas Android Studio 3.2.1 versijai, kas ir pašreizējais stabilais laidiens šī raksta laikā.
Android Studio projekta un redaktora logi
Es iepazīstināju ar Android Studio galveno logu 1. daļas beigās. Šis logs ir sadalīts vairākās jomās, tostarp projekta logā, kurā jūs identificējat lietotnes resursu failus, un dažādos redaktora logos, kur jūs rakstīsit kodu un norādīsit mobilo lietotņu resursus. Android studijā. Projekta logs un redaktora logs ir parādīti 1. attēlā.
Džefs FrīzensTiek izcelts logs Projekts W2A, kas ir lietotnes nosaukums W2A.java
avota fails (lai gan .java
faila paplašinājums nav parādīts). Kas atbilst W2A ir redaktora logs, kuru sasniedz, veicot dubultklikšķi W2A logā Projekts. Redaktora logā tiek parādīts faila pašreizējais saturs, šajā gadījumā Java skeleta pamatkods lietotnes galvenajai darbībai.
Katrs redaktora logs ir saistīts ar cilni. Piemēram, W2Aredaktora logs ir saistīts ar W2A.java cilni. Otrā cilne ir identificēta kā main.xml (tiek parādīts arī noklusējuma XML bāzes izkārtojums lietotnes galvenajai darbībai). Jūs pārvietojaties no viena redaktora loga uz citu, noklikšķinot uz loga cilnes.
lejupielādēt Iegūstiet kodu Lejupielādējiet Android parauga lietotnes avota kodu: W2A.java. Izveidoja Jeff Friesen JavaWorld.Android lietotnes piemērs
Lietotnes piemērs (W2A.java) sastāv no galvenās darbības, kurā tiek parādīts Android robota raksturs, un pogas. Kad lietotājs nospiež pogu, robots animē, izmantojot virkni krāsu. Šajā sadaļā mēs izpētīsim aktivitātes pirmkodu un resursus.
Izpētiet un kodējiet Android lietotnes piemēru
Darbības avota kods tiek saglabāts failā W2A.java
, kas parādīts 1. sarakstā.
Saraksts 1. W2A.java
pakete ca.javajeff.w2a; importēt android.app.Activity; importēt android.graphics.drawable.AnimationDrawable; importēt android.os.Bundle; importēt android.view.View; importēt android.widget.Button; importēt android.widget.ImageView; publiskā klase W2A paplašina aktivitāti {AnimationDrawable androidAnimation; @Orride public void onCreate (Pakete savedInstanceState) {super.onCreate (savedInstanceState); setContentView (R.layout.main); ImageView androidImage = (ImageView) findViewById (R.id.android); androidImage.setBackgroundResource (R.drawable.android_animate); androidAnimation = (AnimationDrawable) androidImage.getBackground (); galīgā poga btnAnimate = (poga) findViewById (R.id.animate); Skats.OnClickListener ocl; ocl = new View.OnClickListener () {@Orride public void onClick (View v) {androidAnimation.stop (); androidAnimation.start (); }}; btnAnimate.setOnClickListener (okt); }}
The W2A.java
fails sākas ar a paketes izraksts, kas nosauc paketi (ca.javajeff.w2a
), kurā glabājas W2A
klasē. Pēc tam seko importa pārskatu sērija dažādiem Android API veidiem. Tālāk kods apraksta W2A
klase, kas paplašinās android.app.Activity
.
W2A
vispirms paziņo androidAnimācija
veida lauka gadījums android.graphics.drawable.AnimationDrawable
. Tipa objekti AnimācijaZīmējama
aprakstiet kadru pa kadram animācijas, kurās pašreizējais zīmējamais tiek aizstāts ar nākamo zīmējamo animācijas secībā.
Kas ir zīmējams?
A zīmējams ir kaut kas, ko var uzzīmēt, piemēram, attēls. AnimācijaZīmējama
netieši paplašina abstraktu android.graphics.drawable.Drawable
klase, kas ir vispārēja abstrakcija zīmējamam.
OnCreate () metode
Viss lietotnes darbs notiek W2A
ir svarīgāks onCreate (pakete)
metode: nav nepieciešamas citas metodes, kas palīdz uzturēt šo lietotni vienkāršu.
onCreate (pakete)
vispirms izsauc tās pašas nosaukto superklases metodi - likumu, kas jāievēro visām svarīgākajām aktivitāšu metodēm.
Pēc tam šī metode tiek izpildīta setContentView (R.layout.main)
lai izveidotu lietotnes lietotāja saskarni. R.layout.main
ir lietojumprogrammas resursa identifikators (ID), kas atrodas atsevišķā failā. Jūs interpretējat šo ID šādi:
R
ir klases nosaukums, kas tiek ģenerēts, veidojot lietotni. Šī klase ir nosauktaR
jo tā saturs identificē dažāda veida lietojumprogrammu resursus, tostarp izkārtojumus, attēlus, virknes un krāsas.izkārtojums
ir klases ligzdas nosaukumsR
. Lietojumprogrammas resurss, kura ID ir saglabāts šajā klasē, apraksta noteiktu izkārtojuma resursu. Katrs lietojumprogrammas resursu veids ir saistīts ar ligzdotu klasi, kas nosaukta līdzīgā veidā. Piemēram,virkne
identificē virknes resursus.galvenais
ir nosaukumsint
ietvaros deklarētā konstanteizkārtojums
. Šis resursa ID identificē galveno izkārtojuma resursu. Konkrēti,galvenais
attiecas uz amain.xml
fails, kurā glabājas galvenās darbības izkārtojuma informācija.galvenais
irW2A
vienīgais izkārtojuma resurss.
Iet garām R.layout.main
uz Aktivitāte
's void setContentView (int layoutResID)
metode uzdod Android izveidot lietotāja saskarnes ekrānu, izmantojot sistēmā saglabāto izkārtojuma informāciju main.xml
. Aizkulisēs Android izveido lietotāja saskarnes komponentus, kas aprakstīti main.xml
un novieto tos ierīces ekrānā, kā norādīts main.xml
izkārtojuma dati.
Ekrāna pamatā ir skati (lietotāja saskarnes komponentu abstrakcijas) un skatu grupas (skati, kas grupē saistītos lietotāja interfeisa komponentus). Skati ir klases gadījumi, kas apakšklasē android.view.View
klases un ir analogi AWT / Swing komponentiem. Skatīt grupas ir klases gadījumi, kas apakšklasē abstraktu android.view.ViewGroup
klases un ir analogi AWT / Swing konteineriem. Android norāda uz konkrētiem skatiem (piemēram, pogām vai vērpējiem) kā logrīki.
Turpinot, onCreate (pakete)
izpilda ImageView androidImage = (ImageView) findViewById (R.id.android);
. Šis paziņojums vispirms izsauc Skats
's Skatīt findViewById (int id)
metode, lai atrastu android.widget.ImageView
deklarētais elements main.xml
un identificēts kā android
. Tas momentāni ImageView
un inicializē to vērtības, kas deklarētas main.xml
failu. Pēc tam paziņojums saglabā šī objekta atsauci lokālajā mainīgajā androidImage
.
ImageView un AnimationDrawable
Tālāk androidImage.setBackgroundResource (R.drawable.android_animate);
paziņojums izsauc ImageView
ir mantots (no Skats
) void setBackgroundResource (int resID)
metodi, iestatot skata fonu resursam, kuru identificējis rezID
. The R.zīmējams.android_anim
arguments identificē XML failu ar nosaukumu android_animate.xml
(prezentēts vēlāk), kurā tiek glabāta informācija par animāciju un kas tiek saglabāta rez
's zīmējams
apakšdirektorijs. The setBackgroundResource ()
zvanu saites androidImage
skats uz attēlu aprakstīto secību android_animate.xml
, kas tiks zīmēts uz šī skata. Sākotnējais attēls tiek uzzīmēts šīs metodes izsaukuma rezultātā.
ImageView
ļauj lietotnei animēt virkni zīmējumu, zvanot AnimācijaZīmējama
metodes. Pirms lietotne to var izdarīt, tai ir jāiegūst ImageView
's AnimācijaZīmējama
. The androidAnimation = (AnimationDrawable) androidImage.getBackground ();
Pēc tam piešķirtais paziņojums izpilda šo uzdevumu, izsaucot ImageView
ir mantots (no Skats
) Zīmējams getBackground ()
metodi. Šī metode atgriež AnimācijaZīmējama
par doto ImageView
, kas pēc tam tiek piešķirts androidAnimācija
laukā. The AnimācijaZīmējama
gadījumu izmanto, lai sāktu un apturētu animāciju, procesu, kuru es aprakstīšu neilgi.
Visbeidzot, onCreate (pakete)
rada Animēt pogu. Tas atsaucas findByViewId (int)
lai iegūtu informāciju par pogu no main.xml
, tad momentāno android.widget.Button
klasē.
Tad tas izmanto Skats
klases ligzdas onClickListener
interfeisu, lai izveidotu klausītāja objektu. Šis objekts ir void onClick (skats v)
metode tiek izsaukta ikreiz, kad lietotājs noklikšķina uz pogas. Klausītājs ir reģistrēts tajā Poga
iebilst, piezvanot Skats
's void setOnClickListener (AdapterView.OnClickListener klausītājs)
metodi.
Lai apturētu, pēc tam sāciet animāciju, Animētklikšķu klausītājs izsauc androidAnimation.stop ();
sekoja androidAnimation.start ();
. The apstāties ()
metodi sauc iepriekš sākt()
lai nodrošinātu, ka nākamais klikšķis Animēt poga liek sākt jaunu animāciju.
Atjauniniet un saglabājiet kodu
Pirms mēs turpinām, nomainiet skeleta kodu savā W2A.java cilne ar kodu no saraksta 1. Saglabājiet šī loga saturu, nospiežot Ctrl + Svai atlasiet Saglabāt visu no Fails izvēlne.
Kodē Android lietotnes main.xml
Lietotnes galvenā darbība ir saistīta ar XML balstītu izkārtojumu, kas tiek saglabāts failā main.xml
, un kas ir parādīts 2. sarakstā.
2. saraksts. main.xml
Pēc XML deklarācijas 2. saraksts deklarē a LinearLayout
elements, kas norāda a izkārtojums (skatu grupa, kas kaut kādā veidā sakārto ietvertos skatus Android ierīces ekrānā), lai horizontāli vai vertikāli visā ekrānā sakārtotu ietvertos logrīkus (ieskaitot ligzdotos izkārtojumus).
The tags norāda vairākus atribūtus šī lineārā izkārtojuma kontrolei. Šie atribūti ietver sekojošo:
orientācija
identificē lineāro izkārtojumu kā horizontālu vai vertikālu. Saturie logrīki ir izkārtoti horizontāli vai vertikāli, un noklusējuma orientācija ir horizontāla."horizontāls"
un"vertikāls"
ir vienīgās juridiskās vērtības, kuras var piešķirt šim atribūtam.izkārtojums_platums
identificē izkārtojuma platumu. Juridiskās vērtības ietver"fill_parent"
(lai būtu tikpat plats kā vecāks) un"wrap_content"
(lai tas būtu pietiekami plašs, lai ievietotu saturu). (Pieraksti tofill_parent
tika pārdēvēts parmatch_parent
operētājsistēmā Android 2.2, taču joprojām tiek atbalstīts un plaši izmantots.)izkārtojums_augstums
identificē izkārtojuma augstumu. Juridiskās vērtības ietver"fill_parent"
(lai būtu tikpat garš kā vecāks) un"wrap_content"
(lai būtu pietiekami garš, lai ievietotu saturu).smagums
identificē izkārtojuma izvietojumu attiecībā pret ekrānu. Piemēram,"centrs"
norāda, ka izkārtojums ekrānā jākoncentrē horizontāli un vertikāli.fons
identificē fona attēlu, gradientu vai vienkrāsainu. Vienkāršības labad esmu stingri kodējis heksadecimālu krāsu identifikatoru, lai apzīmētu vienmērīgu baltu fonu (#ffffff
). (Krāsas parasti tiktu saglabātaskrāsas.xml
un atsauces no šī faila.)
The LinearLayout
elements iekapsulējas ImageView
un Poga
elementi. Katrs no šiem elementiem norāda id
atribūts, kas identificē elementu tā, lai uz to varētu atsaukties no koda. The resursa identifikators (īpaša sintakse, kas sākas ar @
), kas piešķirts šim atribūtam, sākas ar @ + id
priedēklis. Piemēram, @ + id / android
identificē ImageView
elements kā android
; uz šo elementu atsaucas kods, norādot R.id.android
.
Šie elementi arī precizē izkārtojums_platums
un izkārtojums_augstums
atribūti, lai noteiktu to satura izklāstu. Katrs atribūts tiek piešķirts wrap_content
tā, lai elements parādītos dabiskā lielumā.
ImageView
precizē a layout_marginBottom
atribūts, lai identificētu atstarpi starp sevi un pogu, kas seko vertikāli. Vieta ir norādīta kā 10 iemērcvai no blīvuma neatkarīgi pikseļi. Tie ir virtuālie pikseļi, kurus lietotnes var izmantot, lai izkārtojuma izmērus / pozīcijas izteiktu neatkarīgi no ekrāna blīvuma.
No blīvuma neatkarīgi pikseļi
A blīvums neatkarīgi pikseļi (dip) ir vienāds ar vienu fizisko pikseļu 160 dpi ekrānā, bāzes blīvumu pieņem Android. Izpildes laikā Android pārredzami apstrādā jebkuru nepieciešamo iegremdēšanas vienību mērogošanu, pamatojoties uz faktisko izmantotā ekrāna blīvumu. Dip vienības tiek pārveidotas par ekrāna pikseļiem, izmantojot vienādojumu: pikseļi = kritumi * (blīvums / 160). Piemēram, 240 dpi ekrānā 1 iemērkšana ir vienāda ar 1,5 fiziskajiem pikseļiem. Google iesaka izmantot mērīšanas vienības, lai noteiktu lietotnes lietotāja saskarni, lai nodrošinātu lietotāja saskarnes pareizu parādīšanu dažādos ierīces ekrānos.