În acest tutorial, veți învăța cum să creați controale de bază pentru imagini Android. Apoi veți învăța cum să configurați, să stylizați și să manipulați aceste controale într-o varietate de moduri.
Acest tutorial vă arată pașii pentru a crea un număr de controale ImageView diferite în aplicația dvs. Android. În primul rând, învățați cum să adăugați controale de bază ale imaginii în fișierele de aspect și ce sunt cele mai utile atribute ale acestora. În continuare, învățați cum să setați conținutul controlului imaginii în mai multe moduri diferite. În cele din urmă, discutăm câteva dintre celelalte funcții disponibile pentru controlul ImageView în Android.
SDK-ul Android include un simplu control text static pentru a fi utilizat în cadrul planificărilor: ImageView (android.widget.ImageView). Un bun exemplu de utilizare a controlului ImageView ar fi afișarea pe ecran a unei pictograme sau a unui grafic. Controalele ImageView pot fi grafice bitmap (cum ar fi PNG, JPG și GIF) sau pot fi alte tipuri de tip Drawable care sunt acceptate de platforma Android, cum ar fi formele definite în XML.
Iată un exemplu de ecran cu cinci controale ImageView diferite afișate pe el.
Începeți prin crearea unui proiect Android. Implementați-vă aplicația Android ca în mod normal. Odată ce ați configurat un proiect și executați aplicația, decideți în ce ecran să adăugați controalele ImageView. Poate că ați creat pur și simplu un nou proiect Android cu Activitatea și layout-ul implicit (main.xml). Acest lucru va funcționa pentru acest exercițiu. Odată ce ați instalat proiectul Android, sunteți gata să continuați cu acest tutorial.
Controalele ImageView sunt, de obicei, incluse ca parte a fișierului de resurse al aranjamentului activității. De exemplu, pentru a adăuga un control ImageView la resursa de aspect principal.xml asociată aplicației dvs., trebuie să editați fișierul de aspect. Puteți face acest lucru în cadrul Eclipse utilizând designerul Resource Layout sau prin editarea directă a XML-ului. Controalele pot fi create, de asemenea, programatic și adăugate pe ecran la timpul de execuție. Pur și simplu creați un control ImageView (android.widget.ImageView) și adăugați-l la aspectul din cadrul activității.
Pentru a adăuga un control ImageView la un fișier cu resurse, deschideți fișierul /res/layout/main.xml care este parte a proiectului dvs. Android. Faceți clic pe butonul LinearLayout (sau controlul aspectului părinte) pe care doriți să-l adăugați controlului ImageView. În Eclipse, din cadrul graficului Layout Resource designer, puteți selecta controlul ImageView din secțiunea Images & Media din Paletă și trageți-l în aspectul părinte.
Pentru a configura cum arată și se comportă controlul ImageView, ajustați atributele controlerului prin selectarea comenzii (fie în tab-ul Schiță sau în fereastra Previzualizare) și modificând atributele acestuia în fila Proprietăți. De asemenea, puteți edita XML direct.
Atribute specifice ale controalelor ImageView pe care doriți să le cunoașteți:
De exemplu, aici este XML-ul de bază găsit într-un fișier de aspect pentru ImageView:
În cele din urmă, dacă și când doriți să accesați un program ImageView în cadrul clasei dvs. de activitate, pur și simplu utilizați identificatorul acestuia pentru al încărca:
ImageView img = (ImagineView) findViewById (R.id.imageViewOfGirl);
Acum, să discutăm unele dintre cele mai comune atribute ale controalelor ImageView.
Implicit, conținutul unui control ImageView are o anumită dimensiune - de obicei dimensiunea dimensiunilor grafice. De asemenea, ele sunt legate de atributele layout_width și layout_height. De asemenea, puteți specifica atributele de înălțime și lățime minime și maxime utilizând o resursă de dimensiuni (dp, px, etc.). Pentru mai multe informații despre dimensiuni, consultați documentația Android SDK privind dimensiunile resurselor.
În XML, aceste proprietăți ar apărea în cadrul controlului ImageView ca:
Android: minHeight = "50dp" android: maxWidth = "150dp" android: maxHeight = "150dp"
Aici specificăm că controlul ar trebui să aibă o dimensiune minimă și maximă specifică. Rețineți că atunci când este utilizat în monotecă, specificarea acestor dimensiuni nu păstrează raportul de aspect al imaginii și, prin urmare, poate să arate ciudat, răsucite sau altfel nu este ideal.
Dacă lucrați cu controlul ImageView în codul Java, puteți seta programabil și dimensiunile min și max ale controlului ImageView folosind metodele setMinimumHeight (), setMaxHeight (), setMinimumWidth () și setMaxWidth () din clasa ImageView.
Când redimensionați un control ImageView, indiferent dacă doriți să scalați în sus sau în jos, doriți să păstrați adesea raportul de aspect sau dimensiunea relativă a dimensiunii, astfel încât imaginea să arate corectă. Figura de mai sus arată câteva controale ImageView care afișează exact aceeași imagine a unei fete, numai cu lățimi diferite, înălțimi și rapoarte de aspect.
Puteți specifica faptul că controlul ImageView își păstrează raportul de aspect folosind atributul adjustViewBounds. În XML, această proprietate ar apărea în controlul dvs. ImageView ca fiind:
android: adjustViewBounds = "true"
Acest atribut este cel mai frecvent combinat cu tipul de scalare pe care doriți să îl atingeți. Cel mai simplu și mai tipic tip de scară pe care îl veți utiliza este tipul fitXY, care măsoară înălțimea și lățimea în sus sau în jos până când se încadrează în limitele maxime specificate. Rețineți că acest lucru nu înseamnă că controlul va fi dimensiunile EXACT max / min ale acelor dimensiuni, cu excepția cazului în care acestea sunt mapate la exact același raport de aspect.
Android: scaleType = "fitXY"
Dacă lucrați cu controlul ImageView în codul dvs. Java, puteți de asemenea să setați programabil limitele de vizualizare și tipul de scală ale controlului ImageView folosind metodele setAdjustViewBounds () și setScaleType () din clasa ImageView.
Ca orice alt control de vizualizare, un ImageView poate fi activat pentru clic, dacă alegeți acest lucru. Această abilitate este dezactivată în mod prestabilit într-un ImageView. Pornirea este, totuși, simplă. Pur și simplu activați clic pe ImageView utilizând atributul clickable și apoi specificați agentul dvs. de manipulare a clicurilor cu atributul onClick, cum ar fi:
android: clickable = "true" șiroid: onClick = "onClickGirl"
Apoi, va trebui să vă actualizați clasa de activitate și să implementați metoda onClickGirl, astfel:
public void onClickGirl (Vizualizare vizualizare) Toast.makeText (aceasta, "Ați făcut clic pe mine!", Toast.LENGTH_SHORT) .show ();
Controalele ImageView suportă de asemenea clicuri lungi, dar va trebui să vă înregistrați programatic. De asemenea, puteți crea un ImageView focalizabil și puteți activa sau dezactiva feedback-ul haptic, dacă alegeți acest lucru.
În general, doriți să furnizați elemente grafice mobile care sunt dimensionate corespunzător pentru tipurile de dispozitive pe care doriți să le vizați. Iată câteva scenarii diferite:
Aplicațiile Android sunt utilizate de mai multe tipuri diferite de utilizatori. Accesibilitatea este ceva de luat în considerare când scrieți aplicațiile - cum va funcționa cineva cu viziune limitată sau fără viziune cu aplicația dvs.? O tehnică ușoară care merge mult spre suportul cititorilor de ecran încorporați și a altor caracteristici de accesibilitate ale Android este întotdeauna, întotdeauna, întotdeauna setați descrierea conținutului pentru fiecare element grafic pe ecran - controalele ImageView, mai ales:
android: contentDescription = "Imaginea unei fete"
Prin stabilirea descrierii conținutului, chiar și cei care nu pot vedea fetița din imagine vor ști că există o singură persoană și pot furniza una cu imaginația.
De asemenea, puteți seta acest câmp programabil utilizând metoda setContentDescription ().
Controalele ImageView sunt utilizate în mod frecvent în interfețele utilizatorilor de aplicații Android pentru a afișa conținuturi grafice (desenate) în diferite moduri. În acest tutorial, ați învățat cum să creați controale de imagine Android și să le personalizați într-o varietate de moduri simple. Aceste atribute pot fi amestecate și potrivite pentru a permite afișarea foarte flexibilă a imaginii pe ecran.