Diferencia entre revisiones de «Estilos e temas»
Ir a la navegación
Ir a la búsqueda
(Página creada con «==Introdución== *Os '''estilos''' permiten definir unhas características visuais para as vistas e agrupalas cun identificador que pode ser usado por diferentes compoñent...») |
|||
| Línea 9: | Línea 9: | ||
*Cada ítem do ficheiro de estilos terá o par: propiedade xml, valor: | *Cada ítem do ficheiro de estilos terá o par: propiedade xml, valor: | ||
**Exemplo: android:textSize -> "22sp" | **Exemplo: android:textSize -> "22sp" | ||
| + | |||
| + | |||
| + | |||
| + | * Cando creamos un novo proxecto, Android Studio asina un aspecto concreto a todas as activities que se cren. | ||
| + | : Dito aspecto está definido no arquivo '''AndroidManifiest.xml''' | ||
| + | <gallery caption="Estilo a nivel global (todo o proxecto)" widths="350" heights="300px" perrow="2"> | ||
| + | Image:PDM_Estilos_1.jpg| Sitio no AndroidManifiest.xml onde está definido o estilo a aplicar. Fixarse que se fai referencia a unha constante definida nun arquivo de recursos. | ||
| + | Image:PDM_Estilos_2.jpg| Arquivo de recursos onde está definido el estilo. Podemos ver que 'deriva' dun dos estilos que xa 'trae' o S.O. Android. | ||
| + | </gallery> | ||
| + | |||
| + | |||
| + | |||
| + | * A nivel de deseño de Activities, podemos 'ver' como quedaría un determinado estilo no deseño do layout ('''realmente non cambiamos nada, soamente visualizamos como quedaría a activity'''): | ||
| + | <gallery caption="Estilo a nivel global (todo o proxecto)" widths="350" heights="300px" perrow="2"> | ||
| + | Image:PDM_Estilos_3.jpg| Escollemos o estilo empregado no manifiesto. | ||
| + | Image:PDM_Estilos_4.jpg| Neste caso temos o estilo: '''android:Theme.Holo.Light.DarkActionBar'''. | ||
| + | Image:PDM_Estilos_5.jpg| Cambiamos o estilo por un que non teña AppBar. | ||
| + | Image:PDM_Estilos_6.jpg| Podemos observar a diferenza. Lembra que non estamos cambiando nada. Se executas a activity visualizarase como estaba antes. | ||
| + | |||
| + | </gallery> | ||
| + | |||
| + | |||
*'''Referencias''': | *'''Referencias''': | ||
**Estilos e temas: http://developer.android.com/guide/topics/ui/themes.html | **Estilos e temas: http://developer.android.com/guide/topics/ui/themes.html | ||
| + | |||
| + | |||
| + | |||
| + | <br /> | ||
| + | ==Estilos a nivel xeral ou de activity== | ||
| + | |||
| + | * Como comentamos antes, podemos aplicar un estilo a: | ||
| + | :* Todas as activities de todo o proxecto. | ||
| + | :* Unha activity concreta. | ||
| + | :* A un View concreto. | ||
| + | |||
| + | * O primeiro caso xa vimos que se pode facer no arquivo AndroidManifiest.xml, cambiando a propiedade 'parent' do estilo AppTheme: | ||
| + | |||
| + | <syntaxhighlight lang="java" line highlight="4"> | ||
| + | <resources> | ||
| + | |||
| + | <!-- Base application theme. --> | ||
| + | <style name="AppTheme" parent="android:Theme.Holo.Light.DarkActionBar"> | ||
| + | <!-- Customize your theme here. --> | ||
| + | </style> | ||
| + | |||
| + | </resources> | ||
| + | </syntaxhighlight> | ||
| + | |||
| + | :<u>Nota:</u> Se prememos Control+Barra espaciodora no sitio onde está o valor do theme, se despregan todos os posibles: | ||
| + | [[Imagen:PDM_Estilos_7.jpg|300px|center]] | ||
| + | |||
| + | : Neste caso se despregan todos os themes que hai a nivel de S.O. Aparecen os que podemos aplicar a nivel de proxecto/activity e tamén outros que se poden aplicar a widget concretos (o veremos máis adiante). | ||
| + | |||
| + | : A diferencia dos estilo aplicados ós view´s, cando aplicamos un estilo nun theme, este estilo se aplicará a todos os view´s da aplicación que soporten dita propiedade. Se non a soportan non lle farán caso. | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | * Se queremos aplicar un theme específico a unha Activity podemos ir ao arquivo '''AndroidManifiest.xml''': | ||
| + | |||
| + | :<syntaxhighlight lang="java" line highlight="4"> | ||
| + | <activity android:theme="@android:style/nome_estilo_definido nun arquivo /res/ ou un dos ofrecidos polo S.O."> | ||
| + | </syntaxhighlight> | ||
| + | |||
| + | : Ou ben no seu arquivo de layout: | ||
| + | :<syntaxhighlight lang="java" line highlight="4"> | ||
| + | <android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" | ||
| + | xmlns:app="http://schemas.android.com/apk/res-auto" | ||
| + | xmlns:tools="http://schemas.android.com/tools" | ||
| + | android:layout_width="match_parent" | ||
| + | android:layout_height="match_parent" | ||
| + | android:theme="@style/nome_estilo_definido nun arquivo /res/" | ||
| + | tools:context=".Adaptadores.UD04_04_Spinners"> | ||
| + | |||
| + | ................ | ||
| + | </syntaxhighlight> | ||
| + | |||
| + | ::ou ben: | ||
==Caso práctico== | ==Caso práctico== | ||
Revisión del 17:38 23 oct 2018
Sumario
Introdución
- Os estilos permiten definir unhas características visuais para as vistas e agrupalas cun identificador que pode ser usado por diferentes compoñentes para que todos teñan o mesmo aspecto.
- Un tema (theme) é aplicado a unha activity enteira (os seus elementos gráficos)
- Un estilo é aplicado a compoñentes individuais.
- Para definir un estilo temos que crear no cartafol /res/values un arquivo xml cun recurso (resource) de tipo estilo (style).
- Cada ítem do ficheiro de estilos terá o par: propiedade xml, valor:
- Exemplo: android:textSize -> "22sp"
- Cando creamos un novo proxecto, Android Studio asina un aspecto concreto a todas as activities que se cren.
- Dito aspecto está definido no arquivo AndroidManifiest.xml
- Estilo a nivel global (todo o proxecto)
- A nivel de deseño de Activities, podemos 'ver' como quedaría un determinado estilo no deseño do layout (realmente non cambiamos nada, soamente visualizamos como quedaría a activity):
- Estilo a nivel global (todo o proxecto)
- Referencias:
- Estilos e temas: http://developer.android.com/guide/topics/ui/themes.html
Estilos a nivel xeral ou de activity
- Como comentamos antes, podemos aplicar un estilo a:
- Todas as activities de todo o proxecto.
- Unha activity concreta.
- A un View concreto.
- O primeiro caso xa vimos que se pode facer no arquivo AndroidManifiest.xml, cambiando a propiedade 'parent' do estilo AppTheme:
1 <resources>
2
3 <!-- Base application theme. -->
4 <style name="AppTheme" parent="android:Theme.Holo.Light.DarkActionBar">
5 <!-- Customize your theme here. -->
6 </style>
7
8 </resources>
- Nota: Se prememos Control+Barra espaciodora no sitio onde está o valor do theme, se despregan todos os posibles:
- Neste caso se despregan todos os themes que hai a nivel de S.O. Aparecen os que podemos aplicar a nivel de proxecto/activity e tamén outros que se poden aplicar a widget concretos (o veremos máis adiante).
- A diferencia dos estilo aplicados ós view´s, cando aplicamos un estilo nun theme, este estilo se aplicará a todos os view´s da aplicación que soporten dita propiedade. Se non a soportan non lle farán caso.
- Se queremos aplicar un theme específico a unha Activity podemos ir ao arquivo AndroidManifiest.xml:
1 <activity android:theme="@android:style/nome_estilo_definido nun arquivo /res/ ou un dos ofrecidos polo S.O.">
- Ou ben no seu arquivo de layout:
1 <android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" 2 xmlns:app="http://schemas.android.com/apk/res-auto" 3 xmlns:tools="http://schemas.android.com/tools" 4 android:layout_width="match_parent" 5 android:layout_height="match_parent" 6 android:theme="@style/nome_estilo_definido nun arquivo /res/" 7 tools:context=".Adaptadores.UD04_04_Spinners"> 8 9 ................
- ou ben:
Caso práctico
- Crear o proxecto: U2_42_Estilos.
- Imos definir un estilo común para aplicar ás etiquetas de texto, por exemplo.
- Estilos
Ficheiro de estilos
1 <?xml version="1.0" encoding="utf-8"?>
2 <resources>
3 <style name="estilo_etiquetas" parent="@android:style/TextAppearance">
4 <item name="android:layout_width">wrap_content</item>
5 <item name="android:layout_height">wrap_content</item>
6 <item name="android:textColor">#00F</item>
7 <item name="android:textSize">22sp</item>
8
9 </style>
10
11 </resources>
O XML do layout
1 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
2 xmlns:tools="http://schemas.android.com/tools"
3 android:layout_width="match_parent"
4 android:layout_height="match_parent"
5 android:orientation="vertical" >
6
7 <TextView
8 style="@style/estilo_etiquetas"
9 android:text="TextView 1" />
10
11 <TextView
12 style="@style/estilo_etiquetas"
13 android:text="TextView 2" />
14
15 <TextView
16 style="@style/estilo_etiquetas"
17 android:text="TextView 3" />
18
19 </LinearLayout>
-- Ángel D. Fernández González e Carlos Carrión Álvarez -- (2015).