interfata grafica
Click here to load reader
Post on 02-Jan-2016
61 views
Embed Size (px)
DESCRIPTION
Irina Presa [email protected] Interfata grafica. Cuprins. Views/Layouts Focus Evenimente Resurse Meniuri Ferestre Dialog Notificari. Views. Ce sunt ? - blocurile de baza ale interfetei - interactioneaza cu utilizatorii prin evenimente Unde le definim ? - direct in cod - PowerPoint PPT PresentationTRANSCRIPT
Interfata graficaIrina [email protected]
CuprinsViews/LayoutsFocusEvenimenteResurseMeniuriFerestre DialogNotificari
ViewsCe sunt ?- blocurile de baza ale interfetei- interactioneaza cu utilizatorii prin evenimente
Unde le definim ?- direct in cod- intr-un fisier XML (resursa)
Ce definim ?- culori, dimensiuni, coordonate- obiecte grafice continute- handlere pentru evenimente
Custom ViewsExtindem clasa View sau pornim de la un View existent - suprascriem metode/handlere de evenimente- preluam atribute din resurse XML, sau le definim dinamic in cod
Compound Control - grupam mai multe View-uri intr-un singur- definim layout container
Adapter ViewCe este ?- subclasa ViewGroup- View-urile copii sunt determinate de un Adapter ce aduna date de un anumit tipUtilizare - pentru a afisa date intr-un layout- ex: Gallery, ListView, Spinner, etcResponsabilitati- umple layoutul cu date- trateaza selectiile utilizatorilor (OnItemClickListener)Exemplu utilizare- populeaza un spinner cu un vector de culori, sau o lista cu contacte din agenda
LayoutsOrganizare ierarhica, avand la baza un ViewGroup
AbsoluteLayout- coordonatele exacte ale copiilorRelativeLayout- above, below, toLeftOfFrameLayout- frame per copil (top left)LinearLayout- orizontal/vertical
Definire coordonate (LayoutParams)Prin numereFill parent Wrap content(getMeasuredWidth/getWidth)
FocusOnFocusChangeListenerView().requestFocusControl next focus ( nextFocusDown, nextFocusLeft nextFocusRight, nextFocusUp)
Evenimente
Subiect - Button.setOnClickListener(OnClickListener listener) Observator - listener.onClick(View v)
Resurse
res/anim - animatii frame-by-frame definite in XML
res/drawable - imagini png si jpg
res/layout - reprezentari XML ale obiectelor View res/values - XML pentru siruri de caractere, culori, stiluri, dimensiuni si vectori
res/xml - fisiere xml definite de utilizator
res/raw - fisiere arbitrare si necompilate ce pot fi adaugate
ResurseReferinte Din cod (clasa R) :- resursa cu id-ul review_image(ImageView) findViewById(R.id.review_image);- fisierul review_detail.xml din folderul res/layoutthis.setContentView(R.layout.review_detail);In XML :- atribuire id android:id="@+id/nume_id- referire alta [email protected]/nume_id- referire valoare [email protected]/nume_resursa (ex: @string/rating_label)
ResurseValori externestring.xml name="menu_get_reviews">Get reviewsstyles.xml
18sp #ffffff
arrays.xml
American Barbeque French
Resurse
Exemplu definire layout + view-uri (review_detail.xml)
Resurse
MeniuriOptions Menu- Icon menu (max 6, suporta iconuri)- Expanded Menu
Context Menu- meniu dinamic ce poate aparea la un click prelungit pe un View
Submenu
Meniuri
MeniuriCum le cream ?Best Practice : Definim meniul intr-o resursa XML si il integram in codcu ajutorul unui MeniuInflater (Separam designul interfetei de codul aplicatiei) XML : menu, item, group
MeniuriCum le integram ?public boolean onCreateOptionsMenu(Menu menu) { MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.game_menu, menu); return true;}public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.new_game: newGame(); return true; case R.id.quit: quit(); return true;}
addIntentOptions : adauga intenturi, pt a incarca activity-uri dinamic
Ferestre DialogAlertDialog- 0-3 butoane, lista de elemente selectabile
ProgressDialog- progress bar/wheel
DatePickerDialog
TimePickerDialog
Custom Dialog- AlertDialog.Builder + LayoutInflater
NotificariA Toast NotificationA Status Bar Notification- remind-uri persistente, necesita raspunsul utilizatorului, icon in status bar- configurabil pt notificari (sunet, vibratii, lumini)A Dialog Notification- notificari legate de Activity
Status Bar NotificationUtilizare- pentru a primi notificari de la un serviciu ce ruleaza in backgroundCreare- NotificationManagerString ns = Context.NOTIFICATION_SERVICE;NotificationManager mNotificationManager = (NotificationManager) getSystemService(ns);- InstantiereNotification notification = new Notification(icon, tickerText, when);- Mesaj expandat + Intentnotification.setLatestEventInfo(context, contentTitle, contentText, contentIntent);NotificaremNotificationManager.notify(ID, notification);Personalizaredefaults, vibrate, sounds, ledARGB
Resurse[1] View-uri din Android API [2] API Samples Unlocking Android. A Developer's Guide
[1] http://developer.android.com/guide/tutorials/views/index.html[2] http://developer.android.com/resources/samples/