summaryrefslogtreecommitdiff
path: root/docs/html-intl/intl/es/training/material/compatibility.jd
blob: ad2e953fed4f53819e2647878a8429e5b95cf4c7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
page.title=Mantener la compatibilidad

@jd:body

<div id="tb-wrapper">
<div id="tb">
<h2>Esta lección te enseña a realizar lo siguiente:</h2>
<ol>
  <li><a href="#Theme">Definir estilos alternativos</a></li>
  <li><a href="#Layouts">Proporcionar diseños alternativos</a></li>
  <li><a href="#SupportLib">Usar la Biblioteca de soporte</a></li>
  <li><a href="#CheckVersion">Comprobar la versión del sistema</a></li>
</ol>
<h2>También deberías leer</h2>
<ul>
  <li><a href="http://www.google.com/design/spec">Especificación de Material Design</a></li>
  <li><a href="{@docRoot}design/material/index.html">Material Design en Android</a></li>
</ul>
</div>
</div>


<p>Algunas características de Material Design, como el tema material y las transiciones de actividades personalizadas, solo
están disponibles en Android 5.0 (API nivel 21) y superior. Sin embargo, puedes diseñar tus aplicaciones para
usar estas características cuando se ejecutan en dispositivos que admiten Material Design y aún son compatibles
con dispositivos que ejecutan versiones anteriores de Android.</p>


<h2 id="Theme">Definir estilos alternativos</h2>

<p>Puedes configurar tu aplicación para usar el tema material en los dispositivos que los admiten y revertir
a un tema anterior en los dispositivos que ejecutan versiones anteriores de Android:</p>

<ol>
<li>Define un tema que herede de un tema anterior (como Holo) en
<code>res/values/styles.xml</code>.</li>
<li>Define un tema con el mismo nombre que hereda del tema material en
<code>res/values-v21/styles.xml</code>.</li>
<li>Establece este tema como el tema de tu aplicación en el archivo de manifiesto.</li>
</ol>

<p class="note"><strong>Nota:</strong>
Si tu aplicación usa el tema material pero no proporciona un tema alternativo,
tu aplicación no se ejecutará en versiones de Android anteriores a la versión 5.0.
</p>


<h2 id="Layouts">Proporcionar diseños alternativos</h2>

<p>Si los diseños que realizas de acuerdo con las pautas de Material Design no usan ninguno de
los nuevos atributos XML introducidos en Android 5.0 (API nivel 21), estos trabajarán en
versiones anteriores de Android. De lo contrario, puedes proporcionar diseños alternativos. También puedes proporcionar diseños
alternativos para personalizar la apariencia de tu aplicación en versiones anteriores de Android.</p>

<p>Crea tus archivos de diseño para Android 5.0 (API nivel 21) dentro de <code>res/layout-v21/</code> y
tus archivos de diseño alternativo para versiones anteriores de Android dentro de <code>res/layout/</code>.
Por ejemplo, <code>res/layout/my_activity.xml</code> es un diseño alternativo para
<code>res/layout-v21/my_activity.xml</code>.</p>

<p>Para evitar duplicación de código, define tus estilos en <code>res/values/</code>, modifica
estilos en <code>res/values-v21/</code> para las nuevas API y usa transmisión por herencia de estilos, definiendo estilos
base en <code>res/values/</code> y heredando de los que están en <code>res/values-v21/</code>.</p>


<h2 id="SupportLib">Usar la Biblioteca de soporte</h2>

<p>Las <a href="{@docRoot}tools/support-library/features.html#v7">Bibliotecas de soporte v7</a>
r21 y superiores incluyen las siguientes características de Material Design:</p>

<ul>
<li><a href="{@docRoot}training/material/theme.html">Estilos de Material Design</a> para algunos widgets
del sistema cuando aplicas uno de los temas <code>Theme.AppCompat</code>.</li>
<li><a href="{@docRoot}training/material/theme.html#ColorPalette">Atributos del tema de la paleta de colores</a>
en los temas <code>Theme.AppCompat</code>.</li>
<li>El widget {@link android.support.v7.widget.RecyclerView} para <a href="{@docRoot}training/material/lists-cards.html#RecyclerView">mostrar conjuntos
de datos</a>.</li>
<li>El widget {@link android.support.v7.widget.CardView} para <a href="{@docRoot}training/material/lists-cards.html#CardView">crear tarjetas</a>.</li>
<li>La clase {@link android.support.v7.graphics.Palette} para <a href="{@docRoot}training/material/drawables.html#ColorExtract">extraer colores prominentes de
imágenes</a>.</li>
</ul>

<h3>Widgets del sistema</h3>

<p>Los temas <code>Theme.AppCompat</code> proporcionan estilos de Material Design para estos widgets:</p>

<ul>
  <li>{@link android.widget.EditText}</li>
  <li>{@link android.widget.Spinner}</li>
  <li>{@link android.widget.CheckBox}</li>
  <li>{@link android.widget.RadioButton}</li>
  <li>{@link android.support.v7.widget.SwitchCompat}</li>
  <li>{@link android.widget.CheckedTextView}</li>
</ul>

<h3>Paleta de colores</h3>

<p>Para obtener estilos de Material Design y personalizar la paleta de colores con la Biblioteca de soporte
v7 de Android, aplica uno de los temas <code>Theme.AppCompat</code>:</p>

<pre>
&lt;!-- extend one of the Theme.AppCompat themes -->
&lt;style name="Theme.MyTheme" parent="Theme.AppCompat.Light">
    &lt;!-- customize the color palette -->
    &lt;item name="colorPrimary">@color/material_blue_500&lt;/item>
    &lt;item name="colorPrimaryDark">@color/material_blue_700&lt;/item>
    &lt;item name="colorAccent">@color/material_green_A200&lt;/item>
&lt;/style>
</pre>

<h3>Listas y tarjetas</h3>

<p>Los widgets {@link android.support.v7.widget.RecyclerView} y {@link
android.support.v7.widget.CardView} están disponible en versiones anteriores de Android mediante
la Biblioteca de soporte v7 con estas limitaciones:</p>
<ul>
<li>{@link android.support.v7.widget.CardView} regresa a una implementación de sombras programáticas
mediante el uso de espaciado adicional.</li>
<li>{@link android.support.v7.widget.CardView} no recorta las vistas de sus hijos que forman intersecciones
con esquinas redondeadas.</li>
</ul>


<h3>Dependencias</h3>

<p>Para usar estas características en versiones de Android anteriores a la 5.0 (API nivel 21), incluye
en tu proyecto la Biblioteca de soporte v7 de Android como una <a href="{@docRoot}/sdk/installing/studio-build.html#dependencies">dependencia de Gradle</a>:</p>

<pre>
dependencies {
    compile 'com.android.support:appcompat-v7:21.0.+'
    compile 'com.android.support:cardview-v7:21.0.+'
    compile 'com.android.support:recyclerview-v7:21.0.+'
}
</pre>


<h2 id="CheckVersion">Comprobar la versión del sistema</h2>

<p>Las siguientes características están disponibles solo en Android 5.0 (nivel de API 21) y superior:</p>

<ul>
<li>Transiciones de actividades</li>
<li>Respuesta táctil</li>
<li>Animaciones con el efecto revelar</li>
<li>Animaciones basadas en rutas</li>
<li>Interfaces dibujables en vector</li>
<li>Matiz de la interfaz dibujable</li>
</ul>

<p>Para conservar la compatibilidad con versiones anteriores de Android, comprueba la {@link
android.os.Build.VERSION#SDK_INT version} del sistema en tiempo de ejecución antes de invocar las API para cualquiera de estas
características:</p>

<pre>
// Check if we're running on Android 5.0 or higher
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
    // Call some material design APIs here
} else {
    // Implement this feature without material design
}
</pre>

<p class="note"><strong>Nota:</strong> Para especificar qué versiones de Android admite tu aplicación,
usa los atributos <code>android:minSdkVersion</code> y <code>android:targetSdkVersion</code>
en tu archivo de manifiesto. Para usar las características de Material Design en Android 5.0, establece el
atributo <code>android:targetSdkVersion</code> en <code>21</code>. Para más información, consulta
la <a href="{@docRoot}guide/topics/manifest/uses-sdk-element.html">guía de &lt;uses-sdk&gt; de la
API</a>.</p>