În timp ce Activitatea gestionează interacțiunea cu aplicația dvs., Layout determină modul în care ar trebui să pară aplicația. În această postare, veți afla modul în care un aspect definește structura vizuală pentru o interfață de utilizator, cum ar fi interfața utilizator pentru o activitate sau un widget pentru aplicații.
Fișierul Layout este un fișier XML care descrie interfața grafică a unui ecran al aplicației dvs. Pentru acest exemplu, vom crea un layout liniar, care este folosit pentru a afișa componentele GUI una lângă cealaltă. Aceste componente pot fi afișate vertical sau orizontal. Atunci când sunt afișate pe orizontală, acestea sunt afișate într-un singur rând. Atunci când sunt afișate pe verticală, ele sunt afișate într-o singură coloană.
Iată un exemplu de aspect al aspectului liniar.
În imaginea de mai jos, puteți vedea codul și modul în care acesta se afișează pe un dispozitiv Android.
Aspectul începe cu o declarație XML. Specifică versiunea XML și codarea.
Următorul rând este eticheta de deschidere pentru aspectul liniar. Înăuntru, aveți o linie care arată astfel:
xmlns: android = "http://schemas.android.com/apk/res/android"
Aceasta specifică spațiul de nume XML, folosit pentru a furniza nume unice pentru elemente și atribute într-un document XML. xmlns
: Android
aici descrie spațiul de nume Android. Acest sistem de numire a numerelor a fost ales de Google pentru a ajuta la erorile de eroare de la Android Studio în timpul procesului de compilare. Spațiul de nume Android ajută la distingerea widgeturilor oficiale Android de la cele personalizate. De exemplu, vă permite să faceți distincție între un personalizat TextView
widget și Android TextView
widget. URI-ul spațiului de nume este http://schemas.android.com/apk/res/android
.
Următorul spațiu de nume-xmlns: Unelte
-vă oferă acces la atributele uneltelor. Acesta nu este spațiul de nume implicit: puteți să vă construiți aplicația Android fără să o utilizați. Cu toate acestea, utilizarea acestuia vă ajută să adăugați metadate la fișierele de resurse care ajută la manipularea și redarea aspectului în Design View. Când faceți referire la elementele sau atributele furnizate de atributele uneltelor, trebuie să adăugați prefixul instrumentelor. Voi explica mai târziu cum folosim atributele de instrumente din acest cod.
Pentru moment, să ne uităm la următoarea parte.
android: layout_width = "match_parent" android: layout_height = "match_parent" șiroid: padding = "16dp" șiroid: orientation = "vertical"
Aceste atribute sunt folosite pentru a determina lățimea și înălțimea aspectului. Acestea indică, de asemenea, cantitatea de umplutură care trebuie utilizată și dacă elementele trebuie plasate vertical sau orizontal. Aici este aleasă orientarea verticală.
Android: layout_width
și Android: layout_height
sunt utilizate pentru a specifica lățimea și înălțimea care vor fi folosite pentru componenta de aspect. Puteți utiliza valorile wrap_content
sau parinte potrivit
pentru a determina lățimea și înălțimea componentei. wrap_content
înseamnă că aspectul (sau vizualizarea) ar trebui să fie suficient de mare pentru conținut. parinte potrivit
înseamnă că ar trebui să fie la fel de larg ca aspectul părintelui.
Plăcuirea este spațiul dintre vizualizare sau aspect și granița sa. Când vă faceți griji Android: padding
, spațiul din toate cele patru laturi ale vizualizării sau aspectului va avea măsurarea specificată. Dacă doriți să controlați separat părțile componente ale plăcuțelor separat, puteți utiliza Android: paddingBottom
, Android: paddingLeft
, Android: paddingRight
, și Android: paddingTop
. Rețineți că aceste valori sunt specificate în pixeli "dp" - independenți de densitate. Mai multe despre acestea în curând!
În timp ce plăcuța este aplicată aspectului sau vizualizării și marginii sale (în cadrul componentei), marginea se aplică aspectului sau vizualizării marginii și altor componente înconjurătoare din afara componentei. Poți să folosești Android: layout_margin
pentru a specifica marginile pe toate părțile simultan sau puteți controla separat părțile individuale ale plăcuței cu Android: layout_marginBottom
, Android: layout_marginLeft
, Android: layout_marginRight
, și Android: layout_marginTop
. Acestea sunt, de asemenea, specificate în dp.
dp
?Un pixel independent de densitate, sau dp pe scurt, este o unitate abstractă care se bazează pe densitatea fizică a ecranului. Densitățile independente de pixeli sunt utilizate la definirea layout-urilor UI. Ele sunt folosite pentru a exprima dimensiunile layout-ului sau poziției într-un mod independent de densitate. Puteți afla mai multe despre densitatea independenței în Android aici.
Atributul context este folosit pentru a declara activitatea în care este asociată aspectul implicit. Aici puteți vedea că aspectul eșantionului este asociat cu MainActivity.
instrumente: context = "com.tutsplus.code.android.tutsplusupload.MainActivity"
Puteți scrie acest lucru într-o formă mai scurtă ca:
instrumente: context = "MainActivity"
Acest lucru este utilizat numai când lucrați în Design View, deoarece un aspect poate fi asociat cu mai multe activități.
Aspectul conține componente copil. De fapt, acesta este întregul lor scop: organizarea și afișarea altor componente.
Să adăugăm câteva elemente la aspectul liniar - începând cu o vizualizare cu buton.
De asemenea, vom adăuga o vizualizare text, care are proprietăți foarte asemănătoare cu cele afișate pe butoane.
Am acoperit Android: layout_height
și Android: layout_width
, așa că acum să vedem ceilalți.
Android: id
proprietatea este folosită pentru a da componentei un nume de identificare. Aceasta vă permite să vă accesați componenta din interiorul codului Java al unei activități, folosind findViewById ()
metodă.
Android: text
atributul este folosit pentru a indica Android ce ar trebui să afișeze componenta textului. În cazul vizualizării butonului, se va afișa butonul de text.
Să ne conducem codul până acum și să vedem cum arată.
Recaptarea, primul element trebuie să fie aspectul pe care îl veți folosi. Aici este LinearLayout
. Orientarea specificată indică ca Android să afișeze componentele în aspect într-o singură coloană verticală. element este primul element care va fi afișat. Acesta va ocupa lățimea părintelui, iar înălțimea acestuia va fi determinată de conținutul său text.
Al doilea element este o vizualizare text care va fi afișată sub buton. Atât înălțimea cât și lățimea vor fi limitate la înălțimea și lățimea conținutului.
În exemplul nostru de mai sus, am codificat textul pentru vizualizarea textului folosind android: text = "Aceasta este o vizualizare text"
. Acest lucru este bine atunci când începeți ca un începător, dar nu este cea mai bună abordare. Să presupunem că ați creat o aplicație care lovește mare în Magazin Google Play și nu doriți să vă limitați la o singură țară sau o limbă. Dacă ați codificat în întregime textul din fișierele de aspect, este dificil să faceți aplicația disponibilă pentru diferite limbi. Deci, care este cea mai bună abordare?
Cea mai bună abordare implică introducerea valorilor textului într-un fișier de resurse șir: strings.xml. Acest lucru simplifică internaționalizarea pentru aplicația dvs. Aceasta face mai ușoară modificarea globală a aplicației, deoarece trebuie să editați un singur fișier.
strings.xml fișierul este localizat în app / src / / res / valori principale pliant. Când o deschizi, ar trebui să aibă o structură ca asta.
Încărcare Tutsplus
Aici aveți o resursă de șir numită numele aplicatiei
, cu o valoare de Încărcare Tutsplus
.
Puteți adăuga alte resurse de șir folosind aceeași structură. Pentru butonul și textul din structura dvs. structura poate arăta astfel.
Încărcare Tutsplus Buton Acesta este un text!
Pentru a utiliza aceste resurse de șir în aspectul dvs., trebuie să actualizați partea text a celor două vizualizări cu resursele respective.
android: text = "@ string / main_button" șiroid: text = "@ string / first_text"
@şir
spune Android să caute o valoare de text în fișierul de resurse șir. După aceasta, este numele resursei. Android va căuta valoarea resursei care corespunde acelui nume și o va folosi pentru componenta dvs..
Înfășurați-vă, iată cum va arăta aspectul dvs.:
În acest post, ați învățat câteva dintre elementele de bază ale lucrului cu machetele. Pe măsură ce construiți aplicații mai complexe, veți vedea cum se potrivesc toate piesele împreună. După ce ați urmat împreună cu acest post, ar trebui să puteți înțelege cum să lucrați cu layout-uri liniare, vizualizări de text și butoane și resurse de șir.
În timp ce sunteți aici, consultați câteva dintre celelalte postări extraordinare ale noastre pentru dezvoltarea aplicațiilor Android.