Themes and Styles in Android
-
Upload
mready -
Category
Self Improvement
-
view
1.294 -
download
0
description
Transcript of Themes and Styles in Android
![Page 1: Themes and Styles in Android](https://reader034.fdocuments.net/reader034/viewer/2022051513/547b7098b4af9f9b158b4f38/html5/thumbnails/1.jpg)
Styles and Themes
- presentation -
by Mihaela Calinescu & Emilia Dobrin
![Page 2: Themes and Styles in Android](https://reader034.fdocuments.net/reader034/viewer/2022051513/547b7098b4af9f9b158b4f38/html5/thumbnails/2.jpg)
CUPRINS
• Styles
o Ce reprezintă
o Definire şi moştenire
o Proprietăţi
• Themes
o Ce reprezintă
o Declarare, moştenire
o Setarea temei
• Exemple
![Page 3: Themes and Styles in Android](https://reader034.fdocuments.net/reader034/viewer/2022051513/547b7098b4af9f9b158b4f38/html5/thumbnails/3.jpg)
Styles
![Page 4: Themes and Styles in Android](https://reader034.fdocuments.net/reader034/viewer/2022051513/547b7098b4af9f9b158b4f38/html5/thumbnails/4.jpg)
• Ce reprezintă un style in Android?
Un style este o colecţie de proprietăţi care
specifică aspectul si formatul unui View sau
ale unei ferestre. De exemplu un style poate
specifica proprietăţi precum :
- height
- padding
- font color
- font size
- background color
- si multe altele.
![Page 5: Themes and Styles in Android](https://reader034.fdocuments.net/reader034/viewer/2022051513/547b7098b4af9f9b158b4f38/html5/thumbnails/5.jpg)
• Cum definim şi cum folosim un
style?
Un style este definit într-un XML resource care
este diferit de XML-ul care specifică layout-ul.
Acesta te ajută să separi design-ul de
conţinut (analog css-ului - cascade
spreadsheet- în web design)
![Page 6: Themes and Styles in Android](https://reader034.fdocuments.net/reader034/viewer/2022051513/547b7098b4af9f9b158b4f38/html5/thumbnails/6.jpg)
De exemplu, folosind un style putem lua acest
XML layout
pe care îl putem transforma în
![Page 7: Themes and Styles in Android](https://reader034.fdocuments.net/reader034/viewer/2022051513/547b7098b4af9f9b158b4f38/html5/thumbnails/7.jpg)
Pentru a crea un set se stiluri, se salvează un
XML file în folderul res/values/ din proiect.
Root node-ul fisierului .xml creat va fi
<resources>. It's a must!
Un exemplu de fişier cu un singur style ar fi
următorul:
![Page 8: Themes and Styles in Android](https://reader034.fdocuments.net/reader034/viewer/2022051513/547b7098b4af9f9b158b4f38/html5/thumbnails/8.jpg)
Style properties
De exemplu, unul dintre atribute este android:inputType.
Aşa că, acolo unde in mod normal ai poziţiona acest
atribut într-un element <EditText>:
am putea crea un style pentru EditText element care să
includă acest atribut :
deci xml-ul nostru poate acum implementa acest style:
![Page 9: Themes and Styles in Android](https://reader034.fdocuments.net/reader034/viewer/2022051513/547b7098b4af9f9b158b4f38/html5/thumbnails/9.jpg)
Themes
![Page 10: Themes and Styles in Android](https://reader034.fdocuments.net/reader034/viewer/2022051513/547b7098b4af9f9b158b4f38/html5/thumbnails/10.jpg)
Ce reprezintă o temă in Android?
• O temă este un set de proprietăţi de
formatare care pot fi aplicate ca unitate pe un
activity sau pe întreaga aplicaţie.
• Temele din Android sunt <resources>
• Există teme default
• Pot fi create teme customizate
![Page 11: Themes and Styles in Android](https://reader034.fdocuments.net/reader034/viewer/2022051513/547b7098b4af9f9b158b4f38/html5/thumbnails/11.jpg)
Cum declarăm o temă?
•Asemănător stilurilor, într-un <style> element
•Exemplu:
![Page 12: Themes and Styles in Android](https://reader034.fdocuments.net/reader034/viewer/2022051513/547b7098b4af9f9b158b4f38/html5/thumbnails/12.jpg)
Ştiaţi că . . .
... puteţi folosi referinţa la o resursă prin item
name folosind unul din simbolurile "@", "?"
?
• @ este folosit pentru referinţe definite in alt
fişier din cadrul proiectului sau din Android
framework
• ? este folosit pentru referinţe la elemente din
acelaşi fişier
• sunt folosite doar in fişierele XML
![Page 13: Themes and Styles in Android](https://reader034.fdocuments.net/reader034/viewer/2022051513/547b7098b4af9f9b158b4f38/html5/thumbnails/13.jpg)
Moştenire
• Atât stilurile, cât şi temele, pot moşteni unele
existente, cu scopul de a modifica anumite
caracteristici sau pentru a adăuga proprietăţi
noi.
• Cum facem asta?
o folosind "parent"
![Page 14: Themes and Styles in Android](https://reader034.fdocuments.net/reader034/viewer/2022051513/547b7098b4af9f9b158b4f38/html5/thumbnails/14.jpg)
• Putem, de asemenea, moşteni un stil sau o
temă din cele create chiar de noi.
Pentru aceasta putem folosi elementul "."
Cum?
• Aici am mostenit stilul CodeFont si i-am
atribuit o noua proprietate, culoarea textului
(rosu).
![Page 15: Themes and Styles in Android](https://reader034.fdocuments.net/reader034/viewer/2022051513/547b7098b4af9f9b158b4f38/html5/thumbnails/15.jpg)
Putem face asta de oricâte ori, atribuind
stilurilor/temelor părinte noi proprietăţi, prin
simpla separare a numelor cu caracterul "."
![Page 16: Themes and Styles in Android](https://reader034.fdocuments.net/reader034/viewer/2022051513/547b7098b4af9f9b158b4f38/html5/thumbnails/16.jpg)
Moştenire la Themes
• De ce trebuie sa ţinem cont?
o Compatibilitate între device-uri !!!
• Putem folosi teme holografice (Holo) pentru
aplicaţiile care rulează pe Android 3.0 (sau
mai mult) - API Level 11
![Page 17: Themes and Styles in Android](https://reader034.fdocuments.net/reader034/viewer/2022051513/547b7098b4af9f9b158b4f38/html5/thumbnails/17.jpg)
• Trebuie să specificăm tipul de temă folosit
prin adăugarea declaraţiei acesteia şi în
folderul special creat pentru Android 3.0 +
/res/values-v11, in fişierul themes.xml.
• Vom folosi varianta Holo a temei din
Android.
• În funcţie de versiunea de Android folosita,
dispozitivul îşi va selecta tema, daca
aceasta a fost declarată în ambele fişiere.
![Page 18: Themes and Styles in Android](https://reader034.fdocuments.net/reader034/viewer/2022051513/547b7098b4af9f9b158b4f38/html5/thumbnails/18.jpg)
Exemplu:
• /res/values/themes.xml
• /res/values-v11/themes.xml
![Page 19: Themes and Styles in Android](https://reader034.fdocuments.net/reader034/viewer/2022051513/547b7098b4af9f9b158b4f38/html5/thumbnails/19.jpg)
Setarea unei teme
• Modificăm AndroidManifest.xml
o pentru setarea temei pe întreaga aplicaţie:
<application android:theme="@style/CustomTheme">
• pentru setarea temei pe un activity al aplicaţiei:
<activity android:theme="@android:style/Theme.Dialog">
![Page 20: Themes and Styles in Android](https://reader034.fdocuments.net/reader034/viewer/2022051513/547b7098b4af9f9b158b4f38/html5/thumbnails/20.jpg)
• Sau aplicăm tema direct din cod.
• Trebuie ţinut cont că acest lucru trebuie
făcut înainte de orice instanţiere de View în
context o de exemplu înainte de setContentView(View) şi
inflate(int, ViewGroup)
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
...
setTheme(android.R.style.Theme_Light);
setContentView(R.layout.linear_layout_3);
}
![Page 21: Themes and Styles in Android](https://reader034.fdocuments.net/reader034/viewer/2022051513/547b7098b4af9f9b158b4f38/html5/thumbnails/21.jpg)
Surse de inspiraţie
• http://developer.android.com/guide/topics/ui/themes.htm
l
• http://www.linuxtopia.org/online_books/android/devguid
e/guide/topics/ui/themes.html
• http://brainflush.wordpress.com/2009/03/15/understandi
ng-android-themes-and-styles/
• http://www.androidengineer.com/2010/06/using-themes-
in-android-applications.html
![Page 22: Themes and Styles in Android](https://reader034.fdocuments.net/reader034/viewer/2022051513/547b7098b4af9f9b158b4f38/html5/thumbnails/22.jpg)
Vă mulţumim pentru atenţie!