Documente Academic
Documente Profesional
Documente Cultură
PROIECTAREA INTERFEELOR
UTILIZATOR
ndrumtor de laborator
U.T. PRESS
Cluj-Napoca, 2015
ISBN 978-606-737-068-3
Editura U.T.PRESS
Str.Observatorului nr. 34
C.P.42, O.P. 2, 400775 Cluj-Napoca
Tel.:0264-401.999 / Fax: 0264 - 430.408
e-mail: utpress@biblio.utcluj.ro
www.utcluj.ro/editura
Director:
Consilier editorial:
Prefa
Aceast publicaie cuprinde 12 lucrri de laborator din domeniul Proiectrii
Interfeelor Utilizator. Scopul principal al acestui material este de a sprijini
activitatea practic de laborator a studenilor din anul 4 de studiu al
Departamentului de Calculatoare, din cadrul Facultii de Automatic i
Calculatoare a Universitii Tehnice din Cluj-Napoca. n acelai timp ns,
publicaia se adreseaz oricrei persoane interesat de fundamentele dezvoltrii
interfeelor utilizator grafice i de tehnologiile actuale utilizate n acest sens.
Lucrrile de laborator incluse n acest material pot fi grupate n dou categorii: 9
lucrri orientate pe prezentarea de noi cunotine, noiuni sau concepte i 3 lucrri
specializate n evaluarea abilitilor practice dobndite de ctre cursani i a
gradului de asimilare de ctre acetia a cunotinelor teoretice prezentate.
Fiecare lucrare de laborator din prima categorie este structurat n patru seciuni
principale. Prima dintre acestea descrie pe scurt aspectele tehnologice prezentate
i obiectivele lucrrii, n timp ce a doua seciune include noiunile teoretice
elementare pe care cursantul trebuie s i le nsueasc pentru a putea ndeplini
sarcinile practice trasate. Ultimele dou seciuni ale fiecrei lucrri prezint
aspecte i recomandri practice de dezvoltare i implementare i propun exerciii
specifice spre rezolvare.
Lucrrile din a doua categorie sunt structurate n trei seciuni principale. Prima
seciune descrie pe scurt scopul evalurii efectuate. A doua seciune prezint
metodologia de testare, criteriile i modalitile de punctare, n timp ce a treia
seciune este rezervat exemplificrii tipurilor de ntrebri i exerciii utilizate n
evaluare.
Cluj-Napoca,
30.05.2015
Autorii
Cuprins
IMPLEMENTAREA INTERFEELOR UTILIZATOR N TEHNOLOGII WEB ................... 4
LABORATORUL 1 LIMBAJUL HTML ............................................................................ 5
1 Introducere ................................................................................................. 5
2 Consideraii teoretice .................................................................................. 5
3 Practici de implementare ............................................................................ 9
4 Exerciii ..................................................................................................... 10
LABORATORUL 2 FORMATARE CSS ......................................................................... 11
1 Introducere ............................................................................................... 11
2 Consideraii teoretice ................................................................................ 11
3 Practici de implementare .......................................................................... 15
4 Exerciii ..................................................................................................... 16
LABORATORUL 3 LIMBAJUL JAVASCRIPT ................................................................... 19
1 Introducere ............................................................................................... 19
2 Consideraii teoretice ................................................................................ 19
3 Practici de implementare .......................................................................... 22
4 Exerciii ..................................................................................................... 23
LABORATORUL 4 VERIFICAREA CUNOTINELOR N TEHNOLOGII WEB ............................ 25
1 Introducere ............................................................................................... 25
2 Metodologia de evaluare .......................................................................... 25
3 Exerciii ..................................................................................................... 26
IMPLEMENTAREA INTERFEELOR UTILIZATOR N TEHNOLOGII WINDOWS
MOBILE .......................................................................................................... 33
LABORATORUL 5 NOIUNI INTRODUCTIVE ................................................................ 34
1 Introducere ............................................................................................... 34
2 Consideraii teoretice ................................................................................ 34
3 Practici de implementare .......................................................................... 35
4 Exerciii ..................................................................................................... 39
LABORATORUL 6 UTILIZAREA CONTROALELOR DE TIP LIST ........................................... 42
1 Introducere ............................................................................................... 42
2 Consideraii teoretice ................................................................................ 42
3 Practici de implementare .......................................................................... 45
4 Exerciii ..................................................................................................... 47
LABORATORUL 7 ELEMENTE AVANSATE DE INTERFA I INTERACIUNE UTILIZATOR ......... 49
1 Introducere ............................................................................................... 49
2 Consideraii teoretice ............................................................................... 49
3 Practici de implementare.......................................................................... 53
4 Exerciii ..................................................................................................... 56
LABORATORUL 8 VERIFICAREA CUNOTINELOR N TEHNOLOGII WINDOWS MOBILE ........ 57
1 Introducere ............................................................................................... 57
2 Metodologia de evaluare .......................................................................... 57
3 Exerciii ..................................................................................................... 59
IMPLEMENTAREA INTERFEELOR UTILIZATOR N TEHNOLOGII ANDROID ......... 64
LABORATORUL 9 NOIUNI INTRODUCTIVE ................................................................ 65
1 Introducere ............................................................................................... 65
2 Consideraii teoretice ............................................................................... 65
3 Practici de implementare.......................................................................... 67
4 Exerciii ..................................................................................................... 75
LABORATORUL 10 UTILIZAREA CONTROALELOR DE TIP LIST ........................................ 78
1 Introducere ............................................................................................... 78
2 Consideraii teoretice ............................................................................... 78
3 Practici de implementare.......................................................................... 80
4 Exerciii ..................................................................................................... 82
LABORATORUL 11 ELEMENTE AVANSATE DE INTERFA I INTERACIUNE UTILIZATOR ....... 84
1 Introducere ............................................................................................... 84
2 Consideraii teoretice ............................................................................... 84
3 Practici de implementare.......................................................................... 85
4 Exerciii ..................................................................................................... 87
LABORATORUL 12 VERIFICAREA CUNOTINELOR N TEHNOLOGII ANDROID.................... 89
1 Introducere ............................................................................................... 89
2 Metodologia de evaluare .......................................................................... 89
3 Exerciii ..................................................................................................... 91
BIBLIOGRAFIE ........................................................................................................ 97
IMPLEMENTAREA INTERFEELOR
UTILIZATOR N TEHNOLOGII WEB
Introducere
1.1 Obiective
Lucrare de fa i propune prezentarea noiunilor introductive asupra limbajului
HTML i a unui subset al etichetelor acestuia pentru organizarea informaiilor.
Consideraii teoretice
Cele mai uzuale etichete din cadrul unui document HTML sunt:
Etichet
HTML
TITLE
LINK
SCRIPT
Descriere
Specific titlul ntregului document i este inclus n seciunea
de antet. Textul din cadrul acestei etichete este utilizat de
ctre navigator pentru a denumi fereastra n care este
prezentat documentul.
Definete o legtur ctre un document extern (ex. CSS, alt
fiier HTML) care poate fi utilizat de ctre navigator n afiarea
informaiilor sau n navigare. Acest element este inclus n
seciunea de antet.
Permite includerea n cadrul documentului a unor instruciuni
de programare complexe ce pot fi executate de ctre
navigator. Aceste instruciuni pot fi grupate ntr-un document
extern, ce va fi descrcat separat, sau incluse direct n
documentul curent. Limbajul de programare cel mai uzual n
prezent este JavaScript.
Elementele de script pot fi incluse n oricare dintre seciunile
documentului iar execuia lor poate fi imediat (execuia are
loc n momentul n care scriptul este complet ncrcat, chiar
dac o parte a documentului nu a fost nc primit) sau
declanat de anumite evenimente (aciuni utilizator,
finalizarea ncrcrii documentului etc.).
STYLE
NAV
Descriere
Grupeaz elementele care fac parte din antetul vizual al paginii
(denumirea companiei, logo-ul acesteia, sloganul etc.)
Permite organizarea coninutului din cadrul paginii n seciuni
logice
Desemeneaz zona de final a paginii, care cuprinde n general
informaii despre drepturile de autor, ultima actualizare,
compania care a realizat situl etc.
Cuprinde elementele vizuale care descriu meniul principal al
sitului i alte informaii de navigare n cadrul acestuia.
Tip nou de coninut introdus nativ n cadrul HTML 5 prin definirea unor noi
etichete:
Etichet
HTML
VIDEO
AUDIO
CANVAS
Descriere
Permite afiarea de coninut video direct n cadrul paginii fr
interpunerea unei tere tehnologii (ex. Flash, Silverlight)
Asigur redarea de sunet fr interpunerea unei tere
tehnologii (ex. Flash, Silverlight).
Asigur programatorilor o zon de afiare n format bitmap
pentru trasarea n timp real a imaginilor, animaiilor etc.
Descriere
Atribut comun majoritii elementelor HTML. Identific n
mod unic, n ntregul document, o anumit etichet HTML
Atribut comun majoritii elementelor HTML. Permite
8
src
type
action
encoding
onfocus
onblur
onchange
onload
onkeydown
onkeyup
onkeypress
Practici de implementare
Exerciii
10
Introducere
1.1 Obiective
Lucrare de fa i propune prezentarea noiunilor de baz utilizate n definirea
stilurilor CSS i n modalitatea de aplicare a acestora pe elemente HTML.
Consideraii teoretice
Specificaiile de stil sunt grupate n mod obligatoriu n clase CSS care se aplic n
mod atomic elementelor HTML la care sunt conectate. Nu este posibil aplicarea
din cadrul unei clase doar a unui subset de specificaii, dar este permis
suprascrierea acestora cu ajutorul unei alte clase.
O clas CSS are urmtoarea sintax generic n care [nume_clas] poate fi oricare
dintre selectorii menionai la seciunea 2.1:
[nume_clas]
{
proprietate_1: valoare_1;
proprietate_2: valoare_2;
...
proprietate_n: valoare_n;
}
11
Este aadar recomandat ca acest tip de etichete s fie utilizate pentru a stabili
regulile generale de afiare a tipurilor de elemente HTML, urmnd ca excepiile s
fie rezolvate cu ajutorul altor tipuri de selectori.
2.1.2 Folosind atributul CLASS al elementului HTML
Pentru a aplica aceleai reguli de stil unui subset heterogen din elementele HTML
este necesar definirea unei clase CSS independent, folosind sintaxa .numeClas:
.mesajImportant
{
color: red;
font-style: italic;
font-weight: bold;
}
Aplicarea acestei clase oricrui element HTML se realizeaz folosind atributul class
al etichetei:
<ELEMENT class="class1 [class2 class3 ...]">
...
<ELEMENT class="mesajImportant">
2.1.3
Utilizarea acestei metode este recomandat atunci cnd specificaiile CSS se aplic
numai unui singur element HTML din cadrul documentului, care este identificat
prin intermediul ID-ului unic:
<ELEMENT id="mesajEroare">
#mesajEroare
{
color: white;
font-weight: bold;
background-color: red;
}
n cadrul unei specificaii CSS, fie c aceasta este cuprins ntr-un singur fiier sau
n mai multe fiiere, denumirea unei clase poate s apar de mai multe ori.
13
14
Practici de implementare
15
Exerciii
Exerciiul 1. Implementai designul din figura de mai jos folosind HTML i CSS
Specificaii de implementare:
titlul font: Arial 24px ngroat, culoare: #800000; este i legtur ctre
pagina principal (Acas)
meniul culoare fundal: #DEB887, coluri rontunjite cu raza de 10px
elementele de meniu elemente de tip A, font: Arial 12 px, culoare
implicit: #800000, culoare interaciune: #FFFFFF
titlu seciune font: Arial 18px ngroat, culoare: #000000, margine: 10px
sus i jos
text pagin font: Arial 12px, culoare: #666666, aliniere: justified;
spaiere ntre paragrafe: 10px
16
pot fi folosite doar urmtoarele elemente HTML: html, head, body, title,
header, section, footer, h1, h2, h3, div, p, span, ul, li, a, img, strong, em
este permis numai utilizarea selectorilor CSS bazai pe etichete HTML
o nu este permis utilizarea atributului style
o nu este permis introducerea de cod CSS n documentul HTML
o nu este permis definirea atributelor ID sau CLASS pentru
elementele HTML
Specificaii de implementare:
titlu seciune font: Arial 18px ngroat, culoare: #000000, margine: 10px
sus i jos
titlu subseciune font: Arial 14px ngroat, culoare: #0000FF, culoare
fundal: #7FFFD4, spaiu interior: 5px
subseciune dimensiune: 33% din limea de afiare, spaiere: 10px fa
de celelalte seciuni
imagine lime: 100% din limea subseciunii, nlime fix: 300px
text font: Arial 12px, culoare: #666666, aliniere: justified, culoare
fundal: #DEB887
paragraf margine: 10px sus i jos, spaiu interior: 10px
17
pot fi folosite doar urmtoarele elemente HTML: html, head, body, title,
header, section, footer, h1, h2, h3, div, p, span, ul, li, a, img, strong, em
este permis numai utilizarea selectorilor CSS bazai pe etichete HTML
o nu este permis utilizarea atributului style
o nu este permis introducerea de cod CSS n documentul HTML
o nu este permis definirea atributelor ID sau CLASS pentru
elementele HTML
18
Laboratorul 3 limbajul
JavaScript
1
Introducere
Deoarece HTML i CSS sunt doar limbaje descriptive, care pot interaciona cu
utilizatorul numai prin intermediul navigatorului i se pot adapta interaciunilor cu
acesta doar ntr-o msur foarte redus, pentru realizarea procesrilor mai
complexe pe client (realizare de animaii, actualizare coninut n mod asincron
etc.) este necesar scrierea de instruciuni care pot fi interpretate i executate de
ctre navigator n mod dinamic. Limbajul utilizat se numete JavaScript.
1.1 Obiective
Lucrarea de fa i propune prezentarea noiunilor de baz n modelarea i
aplicarea interaciunilor utilizator folosind limbajul JavaScript.
Consideraii teoretice
19
</SCRIPT>
20
};
FORM.onsubmit
ELEMENT.onblur
ELEMENT.onclick
ELEMENT.getAttribute("nume_atribut")
ELEMENT.setAttribute("nume_atribut",
"valoare")
ELEMENT.innerHTML
VARIABIL.length
STRING.indexOf(string)
Date.parse(string)
21
isNaN(object)
Practici de implementare
Exerciii
23
24
Laboratorul 4 verificarea
cunotinelor n Tehnologii Web
1
Introducere
1.1 Obiective
Lucrarea de fa i propune stabilirea msurii n care noiunile fundamentale din
domeniul Tehnologiilor Web au fost nsuite de ctre cursani.
Metodologia de evaluare
25
Exerciii
27
28
29
n cazul n care valoarea introdus ntr-un anumit cmp nu este valid, culoarea
de fundal a cmpului respectiv va fi schimbat la #FFA500. Altfel, ea va fi setat la
#FFFFFF.
Exerciiul 2. Implementai funcionaliti de restricionare a valorilor introduse de
utilizator n cmpurile formularului de la exerciiul anterior, dup cum urmeaz:
31
32
IMPLEMENTAREA INTERFEELOR
UTILIZATOR N TEHNOLOGII
WINDOWS MOBILE
Laboratorul 5 Noiuni
introductive
1
Introducere
1.1 Obiective
Lucrarea de fa i propune prezentarea conceptual a tehnologiei Windows
Phone 7 cu aplicabilitate n dezvoltarea unei aplicaii practice.
Consideraii teoretice
34
Practici de implementare
35
dintre acestea mparte ntreg spaiul n linii i coloane a cror dimensiune poate fi
specificat programatic, folosind proprietatea RowDefinition. Clasa StackPanel se
folosete pentru a ordona vertical sau orizontal modulele componente.
Etichetele i csuele text pot fi descrise tot prin intermediul elementelor XAML i
anume: TextBlock, respectiv TextBox. n cazul n care se dorete codificarea
parolei prin caractere de tipul *, se poate folosi clasa PasswordBox. Similar cu
limbajul HTML, butoanele se pot defini ca i elemente de tipul Button.
Exist de asemenea i posibilitatea de aplicare a unui set de atribute vizuale
(stiluri) asupra unui grup de elemente XAML. Pentru aceasta se pot folosi clasele
Style i Setter. Exist trei nivele de aplicabilitate a stilurilor:
Pentru elementele din clasa n care au fost definite: spre exemplu, pentru
stiluri declarate n cadrul clasei Grid, acestea au efect doar asupra
elementelor din aceast clas.
Pentru elementele din ntreaga pagin XAML.
Pentru elementele din ntregul proiect: dac stilurile sunt definite n
fiierul App.xaml.
37
atunci maparea se face in clasa View prin construcia Binding Username. Operaia
de mapare presupune preluarea valorii Username i afiarea acesteia n csua
text TextBox, n mod automat.
Deoarece Username este o proprietate a unei clase din categoria ViewModel, este
necesar definirea explicit a conexiunii dintre instana de tip View i cea de tip
ViewModel pentru ca platforma WindowsPhone s poate identifica n mod corect
proprietatea la care se face referire. n acest sens, este necesar ca n constructorul
clasei de tip View s declarm o instan a clasei de tip ViewModel i s o
conectm la proprietatea DataContext:
class View
{
private ViewModel _vm;
public View
{
IntitializeComponent();
_vm = new ViewModel();
DataContext = _vm;
}
}
Pn n acest moment, exemplele de mai sus definesc numai o legtur unidirecional, de la elementul din View la proprietatea Username. n cazul n care
38
Exerciii
39
textul "Parola nu poate fi vid. " (aliniat la stnga, font: 14px, culoare:
#FF0000)
textul "Nume de utilizator / parol incorecte. " (centrat orizontal, font:
14px, culoare: #FF0000)
un buton cu titlul "Autentificare", centrat orizontal
spaiere:
o sub titlu: 60px
o deasupra textului "Parol": 40px
o deasupra textului "Nume de utilizator / parol incorecte": 20px
o deasupra butonului Autentificare: 20px
Restricii de implementare:
40
41
Laboratorul 6 utilizarea
controalelor de tip list
1
Introducere
n cadrul acestui laborator se urmrete adugarea unui nou ecran care permite
afiarea crilor din bibliotec, sub form de list. Acest ecran devine vizibil numai
n cazul autentificrii cu succes a utilizatorului.
1.1 Obiective
Lucrarea de fa i propune folosirea i personalizarea listelor n aplicaii de tipul
Windows Phone 7.
Consideraii teoretice
43
De cele mai multe ori afiarea datelor n interfa presupune o etap de colectare
a acestora din diferite surse (de exemplu: baze de date, fiiere XML etc.). Atunci
cnd exist o ntrziere ntre iniierea cererii i afiarea datelor, se recomand
folosirea unei bare de progres care s ofere utilizatorului o mai bun nelegere a
strii aplicaiei. n Windows Phone 7 componenta corespunztoare este
ProgressBar.
44
2.3 Stiluri
Pentru a eficientiza volumul de munc se pot folosi stiluri, care pot fi aplicate unui
set de elemente vizuale, asigurnd astfel i un aspect unitar al aplicaiei. Pentru
aceasta se recomand folosirea claselor Style i Setter, n care fiecare atribut este
specificat prin cuvntul rezervat Property, iar valoarea acestuia prin Value.
<StackPanel Orientation="Horizontal">
<StackPanel.Resources>
<Style x:Name="MyStyle" TargetType="TextBlock" >
<Setter Property="Margin" Value="0, 10, 0, 0" />
<Setter Property="FontSize" Value="20" />
<Setter Property="FontWeight" Value="Bold" />
</Style>
</StackPanel.Resources>
<TextBlock Text="Formatted using styles"
Style="{StaticResource MyStyle}"/>
<TextBlock Text="Formatted using same style"
Style="{StaticResource MyStyle}"/>
</StackPanel>
Practici de implementare
ViewModel
Model
Detalii
Gestioneaz toate elementele vizuale ale interfeei
(fiierul .xaml) i comportamentul acestora (fiierul
.xaml.cs). Cele dou fiiere ar trebui plasate n directorul
View al proiectului.
Componenta care formateaz informaiile din model
pentru a fi vizualizate n interfaa utilizator. Fiierul .cs va
fi plasat n directorul ViewModel.
Clas sau grup de clase care simuleaz o baz de date.
Valorile vor fi introduse manual n cod, pentru fiecare
dintre elementele de date necesare.
45
NavigationService.Navigate(new Uri("/TargetView.xaml",
UriKind.Relative));
46
Exerciii
Restricii de implementare:
la ncrcarea ecranului
o va fi vizibil numai o bar de progres cu comportament nedefinit
o dup dou secunde, lista de cri va deveni vizibil iar indicatorul
de progres va disprea
fiecare carte va fi reprezentat de un element n cadrul unui control de tip
list
informaiile crilor afiate vor fi descrise n cadrul componentei Model a
aplicaiei
47
48
Laboratorul 7 elemente
avansate de interfa i
interaciune utilizator
1
Introducere
1.1 Obiective
Utilizarea conceptelor de meniu contextual, bar de aplicaie, precum i
modificarea funciei implicite a evenimentelor din aplicaiile de tipul Windows
Phone 7.
Consideraii teoretice
ecran. Pentru aceasta trebuie inslatat pachetul toolkit folosind NuGet (acest
proces este descris n primul laborator de Windows Phone i n Figura 7.1).
50
51
Practici de implementare
53
54
}
public void Navigate(String pageName)
{
frame.Navigate(new Uri(pageName, UriKind.Relative));
}
public void Navigate(String pageName, object parameter)
{
_param = parameter;
frame.Navigate(new Uri(pageName, UriKind.Relative));
}
}
Se mai folosete o clas Factory pentru a avea acces la instanele ViewModel din
fiecare vedere. Aceasta implementeaz ablonul Singletone, astfel nct se evit
crearea mai multor instane de acelai tip:
public class ViewModelsFactory
{
private static DetailsViewModel _detailsVM;
public static DetailsViewModel DetailsVM
{
get
{
if (_detailsVM == null)
{
_ detailsVM = new DetailsViewModel();
}
return _ detailsVM;
}
}
public static Object GetViewModel(string type)
{
switch (type)
{
case "option1":
return DetailsVM;
case "option2":
return ;
default:
return DetailsVM;
}
55
}
}
Exerciii
56
Laboratorul 8 verificarea
cunotinelor n Tehnologii
Windows Mobile
1
Introducere
1.1 Obiective
Stabilirea msurii n care noiunile fundamentale din domeniul Windows Mobile
au fost nsuite de ctre cursani.
Metodologia de evaluare
pentru fiecare chestionar vor fi selecionate aleator din cadrul unei baze de date
iar rspunsurile fiecrei ntrebri vor fi de asemenea ordonate aleator.
58
Exerciii
</StackPanel>
a. Culoarea textului va fi roie pentru fiecare TextBlock
b. Se va afia PIU1 i PIU3 cu rou, iar PIU2 cu verde
c. Stilul definit n seciunea de resurse nu are efect dac nu e adugat
explicit pentru un TextBlock
d. Se va genera o eroare de compilare pentru c stilul definit la resurse
nu are setat proprietatea x:Key
5. Alegei dintre opiunile de mai jos pe cele care reprezint moduri valide
de mapare (binding):
a. OneWay
b. ManyToMany
c. TwoWay
d. OneToMany
6. Care dintre urmtoarele secvene de cod are ca i rezultat afiarea
textului PIU pe un buton?
a. <Button Content=PIU />
b. <Button x:Name=PIU />
c. <Button>PIU</Button>
d. <Button>
<TextBlock>PIU</TextBlock>
</Button>
7. Specificai limea n pixeli a fiecrei coloane definite n urmtoarea
secven XAML:
<Grid Width=500>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="2*" />
</Grid.ColumnDefinitions>
<StackPanel Grid.Column=1 Width=200 />
</Grid>
a. 0, 200, 0
b. 100, 200, 200
c. 200
d. 500
60
61
d. n stnga
14. Legtura dintre ViewModel i View, n cadrul aplicaiilor Windows
Phone se realizeaz prin:
a. Setare DataContext n pagina dorit
b. Referirea n ViewModel a View-ului
c. Maparea (binding) la proprietile din ViewModel
d. Folosirea variabilelor statice n clasa ViewModel
15. Ce se poate afirma cu privire la secvenele de cod:
View:
<TextBlock Text={Binding MyInput} />
<TextBox Text={Binding MyInput, Mode=TwoWay} />
ViewModel:
private string _myInput;
public string MyInput
{
get {return _myInput;}
set {
if (string.IsNullOrEmpty(value))
_myInput = Introduceti o valoare;
else
_myInput = value;
NotifyPropertyChanged(MyInput);
}
}
a. Valoarea iniial a elementului TextBlock este Introduceti o valoare
b. Modificarea proprietii MyInput din ViewModel nu se reflect n
View
c. Valorile introduse n TextBox vor fi vizibile automat i n elementul
TextBlock
d. Valorile introduse n TextBox NU vor fi vizibile automat i n elementul
TextBlock
62
63
IMPLEMENTAREA INTERFEELOR
UTILIZATOR N TEHNOLOGII ANDROID
64
Laboratorul 9 Noiuni
introductive
1
Introducere
1.1 Obiective
Prezentarea noiunilor introductive n dezvoltarea unei aplicaii Android i
realizarea n cursul orelor de laborator a unei prime aplicaii.
Consideraii teoretice
65
66
Practici de implementare
3.1.2
3.1.3
67
NOT: pentru dezvoltarea aplicaiilor de laborator noi vom utiliza Android 4.4
(KitKat), API 19.
68
3.1.4
3.1.5
69
3.1.6
3.1.7
70
3.1.8
Rezultatul obinut
71
72
fiecare dintre ID-urile definite n cadrul fiierelor XML de layout sub forma
android:id="@+id/valoareID" sunt accesibile prin R.id.valoareID
fiecare
dintre
resursele
grafice
este
accesibil
prin
R.drawable.nume_fisier_fara_extensie
fiecare dintre fiierele de interfa este accesibil prin
R.layout.nume_fisier_fara_extensie
etc.
74
import com.example.booksstoreapp.R;
Dup executarea cu succes a comenzii de mai sus, orice element vizual poate fi
accesat prin comanda:
TipElement variabil = (TipElement) findViewById(R.id.TVErrorPassword);
n clasele Java care vor extinde acest layout este necesar definirea funciei
SignInClick, astfel:
public void SignInClick(View view)
{
}
Exerciii
75
Restricii de implementare:
76
77
Laboratorul 10 utilizarea
controalelor de tip list
1
Introducere
1.1 Obiective
Folosirea i personalizarea listelor n aplicaiile Android. Definirea meniurilor
contextuale.
Consideraii teoretice
getCount
getItem
getItemId
getView
Practici de implementare
3.2.1
3.4.1
Controlul afirii meniului contextual
nainte de a afia meniul contextual, sistemul de operare apeleaz funcia
onCreateContextMenu. Vom exemplifica n cele ce urmeaz personalizarea
acestei funcii prin ataarea la meniu a unui titlu diferit n funcie de elementul
vizat dintr-o list. Pentru a identifica mai multe informaii despre elementul vizual
la care este ataat meniul se poate utiliza parametrul de tipul ContextMenuInfo,
conform exemplului de mai jos.
public void onCreateContextMenu(ContextMenu menu, View v,
ContextMenuInfo menuInfo)
{
super.onCreateContextMenu(menu, v, menuInfo);
// verificm dac meniul este creat pentru lista vizat
if (v.getId()==R.id.id_lista_vizata)
{
// identificm elementul selectat din list
AdapterView.AdapterContextMenuInfo info =
(AdapterView.AdapterContextMenuInfo)menuInfo;
menu.setHeaderTitle(String valoare_specifica_elementului);
// ncrcm structura vizual a meniului
getMenuInflater().inflate(R.menu.meniu_contextual, menu);
}
}
81
3.4.2
Exerciii
Restricii de implementare
82
Specificaii de implementare
83
Laboratorul 11 elemente
avansate de interfa i
interaciune utilizator
1
Introducere
Aplicaiile pentru Android permit afiarea n cadrul unei bare de opiuni, plasat n
partea de sus a ecranului, comenzile generale pentru activitatea curent. Aceasta
trebuie s reflecte opiunile disponibile utilizatorului n fiecare moment. De
asemenea, pentru situaiile n care anumite operaiuni dureaz un timp mai
ndelungat, este necesar introducerea barei de progress care s avertizeze
utilizatorul.
1.1 Obiective
Folosirea barei de opiuni, a barei de progres i a butonului Back.
Consideraii teoretice
Practici de implementare
85
86
Pentru comportamentul implicit, este necesar apelarea funciei din clasa printe:
super.onBackPressed().
Exerciii
Exerciiul 1. Extindei aplicaia din laboratorul anterior prin adugarea unui ecran
de detalii, conform imaginii de mai jos:
Specificaii de implementare:
87
la apsarea butonului fizic Back, atunci cnd ecranul cu lista de cri este
afiat, solicitai utilizatorului confirmarea ncheierii sesiunii de lucru prin
intermediul unei ferestre de dialog a sistemului Android
o dac utilizatorul confirm, afiai ecranul de Autentificare
o dac utilizatorul anuleaz, rmnei la ecranul curent
definii un meniu de opiuni care permite iniializarea ncheierii sesiunii de
lucru prin intermediul opiunii Sign out
o implementai scenariul de interaciune de la punctul anterior
88
Laboratorul 12 verificarea
cunotinelor n Tehnologii
Android
1
Introducere
1.1 Obiective
Stabilirea msurii n care noiunile fundamentale din domeniul Tehnologiilor
Android au fost nsuite de ctre cursani.
Metodologia de evaluare
pentru fiecare chestionar vor fi selecionate aleator din cadrul unei baze de date
iar rspunsurile fiecrei ntrebri vor fi de asemenea ordonate aleator.
90
Exerciii
d. xhdpi
6. Care dintre urmtoare afirmaii, referitoare la AndroidManifest.xml sunt
adevrate:
a. Cuprinde toate elementele descriptive necesare instalrii pe
dispozitive
b. Definete nivelul minim pentru versiunea de Android SDK
c. Restricioneaz accesul la aplicaiile din magazinul virtual Google
Play, pentru anumite dispozitive
d. Deservete la identificarea aplicaiei pe baza unui nume unic
7. Cum se numete clasa care realizeaz legtura dintre modelul de date i
componentele vizuale n aplicaiile Android?
a. Link
b. Adapter
c. MVC
d. LiniarLayout
8. Care este numele clasei care se folosete pentru a crea elementele
grafice ale unui ecran (screen)?
a. Activity
b. ViewGroup
c. View
d. Adapter
9. Identificai metoda Android care permite navigarea ntre activiti:
a. startActivity
b. gotoActivity
c. open
d. create
10. Care este metoda folosit pentru notificarea clasei Adapter despre
modificrile din clasa model?
a. adapterNotify
b. notifyDataSetChanged
c. updateAdapter
d. notification
92
93
94
o
o
95
96
Bibliografie
[1] Chris Coyier, Specifics on CSS Specificity, 10 Mai 2010, http://csstricks.com/specifics-on-css-specificity/ [ONLINE, 30 mai 2015]
[2] App activation and deactivation for Windows Phone 8. http://msdn.microsoft
.com/en-us/library/windows/apps/ff817008%28v =vs.105%29.aspx [ONLINE, 30
mai 2015]
[3] Clifton, I.G. Android User Interface Design: Turning Ideas and Sketches into
Beautifully Designed Apps. Addison-Wesley Professional, 2013
[4] Krug, S. Don't Make Me Think, Revisited: A Common Sense Approach to Web
Usability (3rd Edition) (Voices That Matter). New Riders, 2014
[5] Lewis, C., Rieman, J. Task-Centered User Interface Design. Electronic publishing,
1993. http://hcibib.org/tcuid/ (2015)
[6] Matteo, P. Windows Phone 8 Development Succinctly. Electronic publishing,
Syncfusion, 2014. http://www.syncfusion.com/resources/techportal/
ebooks/windowsphone8
[7]McCracken D.D., Wolfe R.J. User-Centered Website Development. A HumanComputer Interaction Approach. Pearson Prentice Hall, 2004
[8] Neil, T. Mobile Design Pattern Gallery: UI Patterns for Smartphone Apps
(Second Edition). O'Reilly Media, 2014
[9] Nudelman, G. Android Design Patterns: Interaction Design Solutions for
Developers. Wiley, 2013
97