Santykinis išdėstymas - vietinių „Android“ programų kūrimas naudojant „Netbeans“

A Santykinis išdėstymas yra grupės vaizdas, rodantis komponentus padėtyje, palyginti su kitu komponentu. Kiekvieno komponento padėtis gali būti nurodyta, palyginti su kitais elementais, pvz., Kairėje mygtuko pusėje arba po tam tikru teksto laukeliu arba sulygiuota apačioje, kairėje ar centre.
Pradedame nuo mokymo programos „Vietinių„ Android “programų kūrimas su„ Netbeans “, paaiškinančiomis, kaip naudotis Linijinis išdėstymasŠioje pamokoje pamatysime sąsajų kūrimo konteinerį „Android“ yra santykinis išdėstymas.
Pagrindinis šio išdėstymo bruožas yra tas, kad šio konteinerio viduje esantys komponentai nustatys savo padėtį kitų elementų atžvilgiu. Tokiu būdu galime apibrėžti, kad Mygtuko komponentas yra po teksto laukelio komponentu ir savo ruožtu yra išlygintas horizontaliai etiketės komponento atžvilgiu.
Tarp savybių, padedančių mums nustatyti elementus kitų atžvilgiu, yra šie:
android: layout_above: tai reiškia, kad komponentas, turintis šią savybę, bus virš mūsų nurodyto komponento.
Pavyzdys:
 
Mygtukas bus virš etiketės elemento, kaip nurodyta android: layout_above = "@ id / title"
android: layout_alignLeft: Tai reiškia, kad komponentas, turintis šią savybę, turi sutapti su mūsų nurodyto komponento kairiuoju kraštu. Jei norime, kad jis sutaptų su dešiniuoju kraštu, mes jį naudosime „Android“: layout_alignRight.
android: layout_toLeftOf: Tai reiškia, kad komponentas, turintis šią savybę, bus kairėje nuo nurodyto komponento.
android: layout_toRightOf: Tai reiškia, kad komponentas, turintis šią savybę, bus dedamas dešinėje nuo nurodyto komponento.
android: layout_bottom: Tai reiškia, kad komponentas, turintis šią savybę, bus dedamas žemiau komponento, kurį nurodome.
Mes ketiname užprogramuoti paprastą skaičiuotuvo pavyzdį „Android“, šioje pamokoje naudosime „Netbeans“ ir „Android“ SDK, kaip tai darėme pamokoje „Vietinių„ Android “programų kūrimas naudojant„ Netbeans “.

Mes sukursime projektą „LayoutRelativo“


Kai projektas bus sukurtas, pradėsime nuo dizaino išdėstymo aplanke, atidarysime failą main.xml ir nukopijuosime šį kodą:
 
Tada funkcionalumą parašysime „Java“ faile MainActivity.java
 paketas com.Relative; importuoti android.app.Activity; importuoti android.os.Bundle; importuoti „Android“ valdiklį. *; importuoti android.view. *; public class MainActivity pratęsia veiklą {// Mes nustatome kintamuosius ir komponentus, kuriuos naudosime // skaičiavimams privatus dvigubas skaičius, numberrob; privati ​​EditText reikšmė, valueb; privatus „TextView“ rezultatas; public void onCreate (Bundle savedInstanceState) {super.onCreate (savedInstanceState); // Mes pradedame programą nuo pagrindinio išdėstymo setContentView (R.layout.main); // Kiekvienam komponentui priskiriame kintamąjį this.valora = (EditText) findViewById (R.id.numeroa); this.valorb = [EditText] findViewById (R.id.numerob); this.result = (TextView) findViewById (R.id.result); } public void btSumar (rodinio rodinys) {// Pridėti funkciją // Jei abi vertės yra didesnės už nulį, jos konvertuojamos į dešimtainį skaičių ir pridedamos, jei (this.value.getText (). toString (). length ( )> 0 && this.valorb.getText (). ToString (). Length ()> 0) {this.numeroa = Double.parseDouble (this.valora.getText (). ToString ()); this.numerob = Double.parseDouble (this.valorb.getText (). toString ()); this.result.setText (Double.toString ((this.numeroa + this.numerob))); }} public void btRestar (rodinio rodinys) {// Atimties funkcija // Jei abi reikšmės didesnės už nulį, ji konvertuojama į dešimtainį skaičių ir atimama, jei (this.value.getText (). toString (). length ()> 0 && this.valorb.getText (). ToString (). Length ()> 0) {this.numeroa = Double.parseDouble (this.valora.getText (). ToString ()); this.numerob = Double.parseDouble (this.valorb.getText (). toString ()); this.result.setText (Double.toString ((this.numeroa - this.numerob))); }} public void btMultiplicar (rodinio rodinys) {// Dauginimo funkcija // Jei abi vertės yra didesnės už nulį, jos konvertuojamos į dešimtainį skaičių ir padauginamos, jei (this.value.getText (). toString (). length ()> 0 && this.valorb.getText (). ToString (). Length ()> 0) {this.numeroa = Double.parseDouble (this.valora.getText (). ToString ()); this.numerob = Double.parseDouble (this.valorb.getText (). toString ()); this.result.setText (Double.toString ((this.numeroa * this.numerob))); }} public void btDivide (Peržiūros rodinys) {// Funkcijos padalijimas // Jei abi vertės yra didesnės už nulį, jos konvertuojamos į dešimtainį skaičių ir padalijamos, jei (this.value.getText (). toString (). length ()> 0 && this.valorb.getText (). ToString (). Length ()> 0) {this.numeroa = Double.parseDouble (this.valora.getText (). ToString ()); this.numerob = Double.parseDouble (this.valorb.getText (). toString ()); if (this.numerob! = 0) {this.result.setText (Double.toString ((this.numeroa / this.numerob))); }}} public boolean onCreateOptionsMenu (meniu meniu) {// Sukurti meniu iš šablono arba išdėstymo getMenuInflater (). inflate (R.menu.main, menu); grįžti tiesa; }
Paleidžiame programą, o kai emuliatorius yra įjungtas, pamatysime šį ekraną.

Pirmajame teksto laukelyje priimami tik skaičiai, kuriuose yra 1 arba 5, kaip nurodyta, o tai gali būti dizaino specifikacijų skaičių derinys su ypatybe „Android“: skaitmenys = "12345"
Taip pat aplanke pridėsime meniu ir submeniu Ištekliai Mes sukursime aplanką pavadinimu menu ir viduje xml failo, vadinamo main.xm, kuriame bus meniu konfigūracija.
 
Vertybių aplanke turime nurodyti failo meniu pavadinimą stygos.xml
 Skaičiuotuvas - santykinio išdėstymo konfigūracija 
Mes vėl paleisime programą, tada paspauskite meniu mygtuką ir spustelėkite Nustatymas.

Pasiekėme visiškai funkcionalią programą, norėdami patikrinti, kaip ji veikia, jei pasukame mobilųjį telefoną ir ekranas turi būti pritaikytas, paspaudžiame:

Ctrl + F12

Tai imituos mobiliojo telefono pasukimą.

Mygtukai yra išdėstyti pagal savybes, pavyzdžiui, mygtukui Atimti mes dedame į dešinę pridėdami ir suderiname su viršutiniu pridėjimo mygtuko kraštu.
 android: layout_toRightOf = "@ id / add" android: layout_alignTop = "@ id / add"
Naudingo mygtuko atveju mes suderiname jį su pirmuoju mygtuku, kurį reikia pridėti, ir su paskutiniu mygtuku, kurį reikia padauginti.
 android: layout_toRightOf = "@ id / multiply" android: layout_alignTop = "@ id / add"
Tada pridėsime mygtuką su piktograma, tam atsisiųsime bet kurią piktogramą iš interneto www.Icofinder.com. Mes nukopijuosime piktogramą į išteklių aplanką / drawable-mdpi.

Žemiau pridedame dizaino kodą, einame į maketo aplanką, atidarome failą main.xml.
 

Pagrindinis santykinių išdėstymų tikslas, kaip minėjome aukščiau dėl dizaino yra naudoti kuo mažiau įdėtų maketųŠiame skaičiuotuvo pavyzdyje mes panaudojome vieną išdėstymą su visais jo komponentais. Tai leis programai veikti greičiau. Įdėjus skirtingą išdėstymą, sulėtėja ir sumažėja programos našumas.
A Išdėstymas Santykinė hierarchija paprastai Jis naudos mažiau išdėstymo ir bus paprastesnis nei „LinearLayout“ hierarchija. Privalumas prieš „LinearLayout“ yra tas, kad kiekvieną kartą, kai norime pakeisti komponento orientaciją arba sukurti papildomų rodinių, turime sukurti naują „LinearLayout“. Todėl bet kokiam sudėtingam išdėstymui rekomenduojama pirmiausia naudoti „RelativeLayout“.
Kas daugiau LinearLayout jis yra orientuotas tik vertikaliai arba horizontaliai komponento atžvilgiu, o išdėstymo reliatyvas turi daug daugiau galimybių. Jei jums patiko ir tarnavo ši pamoka, sekite mane!Ar jums patiko ir padėjo ši pamoka?Galite apdovanoti autorių paspausdami šį mygtuką, kad suteiktumėte jam teigiamą tašką
wave wave wave wave wave