interfata grafica

Click here to load reader

Post on 02-Jan-2016

61 views

Category:

Documents

3 download

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 Presentation

TRANSCRIPT

  • 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/