1 page.title=Mantener la compatibilidad 2 3 @jd:body 4 5 <div id="tb-wrapper"> 6 <div id="tb"> 7 <h2>Esta leccin te ensea a realizar lo siguiente:</h2> 8 <ol> 9 <li><a href="#Theme">Definir estilos alternativos</a></li> 10 <li><a href="#Layouts">Proporcionar diseos alternativos</a></li> 11 <li><a href="#SupportLib">Usar la Biblioteca de soporte</a></li> 12 <li><a href="#CheckVersion">Comprobar la versin del sistema</a></li> 13 </ol> 14 <h2>Tambin deberas leer</h2> 15 <ul> 16 <li><a href="http://www.google.com/design/spec">Especificacin de Material Design</a></li> 17 <li><a href="{@docRoot}design/material/index.html">Material Design en Android</a></li> 18 </ul> 19 </div> 20 </div> 21 22 23 <p>Algunas caractersticas de Material Design, como el tema material y las transiciones de actividades personalizadas, solo 24 estn disponibles en Android 5.0 (API nivel 21) y superior. Sin embargo, puedes disear tus aplicaciones para 25 usar estas caractersticas cuando se ejecutan en dispositivos que admiten Material Design y an son compatibles 26 con dispositivos que ejecutan versiones anteriores de Android.</p> 27 28 29 <h2 id="Theme">Definir estilos alternativos</h2> 30 31 <p>Puedes configurar tu aplicacin para usar el tema material en los dispositivos que los admiten y revertir 32 a un tema anterior en los dispositivos que ejecutan versiones anteriores de Android:</p> 33 34 <ol> 35 <li>Define un tema que herede de un tema anterior (como Holo) en 36 <code>res/values/styles.xml</code>.</li> 37 <li>Define un tema con el mismo nombre que hereda del tema material en 38 <code>res/values-v21/styles.xml</code>.</li> 39 <li>Establece este tema como el tema de tu aplicacin en el archivo de manifiesto.</li> 40 </ol> 41 42 <p class="note"><strong>Nota:</strong> 43 Si tu aplicacin usa el tema material pero no proporciona un tema alternativo, 44 tu aplicacin no se ejecutar en versiones de Android anteriores a la versin 5.0. 45 </p> 46 47 48 <h2 id="Layouts">Proporcionar diseos alternativos</h2> 49 50 <p>Si los diseos que realizas de acuerdo con las pautas de Material Design no usan ninguno de 51 los nuevos atributos XML introducidos en Android 5.0 (API nivel 21), estos trabajarn en 52 versiones anteriores de Android. De lo contrario, puedes proporcionar diseos alternativos. Tambin puedes proporcionar diseos 53 alternativos para personalizar la apariencia de tu aplicacin en versiones anteriores de Android.</p> 54 55 <p>Crea tus archivos de diseo para Android 5.0 (API nivel 21) dentro de <code>res/layout-v21/</code> y 56 tus archivos de diseo alternativo para versiones anteriores de Android dentro de <code>res/layout/</code>. 57 Por ejemplo, <code>res/layout/my_activity.xml</code> es un diseo alternativo para 58 <code>res/layout-v21/my_activity.xml</code>.</p> 59 60 <p>Para evitar duplicacin de cdigo, define tus estilos en <code>res/values/</code>, modifica 61 estilos en <code>res/values-v21/</code> para las nuevas API y usa transmisin por herencia de estilos, definiendo estilos 62 base en <code>res/values/</code> y heredando de los que estn en <code>res/values-v21/</code>.</p> 63 64 65 <h2 id="SupportLib">Usar la Biblioteca de soporte</h2> 66 67 <p>Las <a href="{@docRoot}tools/support-library/features.html#v7">Bibliotecas de soporte v7</a> 68 r21 y superiores incluyen las siguientes caractersticas de Material Design:</p> 69 70 <ul> 71 <li><a href="{@docRoot}training/material/theme.html">Estilos de Material Design</a> para algunos widgets 72 del sistema cuando aplicas uno de los temas <code>Theme.AppCompat</code>.</li> 73 <li><a href="{@docRoot}training/material/theme.html#ColorPalette">Atributos del tema de la paleta de colores</a> 74 en los temas <code>Theme.AppCompat</code>.</li> 75 <li>El widget {@link android.support.v7.widget.RecyclerView} para <a href="{@docRoot}training/material/lists-cards.html#RecyclerView">mostrar conjuntos 76 de datos</a>.</li> 77 <li>El widget {@link android.support.v7.widget.CardView} para <a href="{@docRoot}training/material/lists-cards.html#CardView">crear tarjetas</a>.</li> 78 <li>La clase {@link android.support.v7.graphics.Palette} para <a href="{@docRoot}training/material/drawables.html#ColorExtract">extraer colores prominentes de 79 imgenes</a>.</li> 80 </ul> 81 82 <h3>Widgets del sistema</h3> 83 84 <p>Los temas <code>Theme.AppCompat</code> proporcionan estilos de Material Design para estos widgets:</p> 85 86 <ul> 87 <li>{@link android.widget.EditText}</li> 88 <li>{@link android.widget.Spinner}</li> 89 <li>{@link android.widget.CheckBox}</li> 90 <li>{@link android.widget.RadioButton}</li> 91 <li>{@link android.support.v7.widget.SwitchCompat}</li> 92 <li>{@link android.widget.CheckedTextView}</li> 93 </ul> 94 95 <h3>Paleta de colores</h3> 96 97 <p>Para obtener estilos de Material Design y personalizar la paleta de colores con la Biblioteca de soporte 98 v7 de Android, aplica uno de los temas <code>Theme.AppCompat</code>:</p> 99 100 <pre> 101 <!-- extend one of the Theme.AppCompat themes --> 102 <style name="Theme.MyTheme" parent="Theme.AppCompat.Light"> 103 <!-- customize the color palette --> 104 <item name="colorPrimary">@color/material_blue_500</item> 105 <item name="colorPrimaryDark">@color/material_blue_700</item> 106 <item name="colorAccent">@color/material_green_A200</item> 107 </style> 108 </pre> 109 110 <h3>Listas y tarjetas</h3> 111 112 <p>Los widgets {@link android.support.v7.widget.RecyclerView} y {@link 113 android.support.v7.widget.CardView} estn disponible en versiones anteriores de Android mediante 114 la Biblioteca de soporte v7 con estas limitaciones:</p> 115 <ul> 116 <li>{@link android.support.v7.widget.CardView} regresa a una implementacin de sombras programticas 117 mediante el uso de espaciado adicional.</li> 118 <li>{@link android.support.v7.widget.CardView} no recorta las vistas de sus hijos que forman intersecciones 119 con esquinas redondeadas.</li> 120 </ul> 121 122 123 <h3>Dependencias</h3> 124 125 <p>Para usar estas caractersticas en versiones de Android anteriores a la 5.0 (API nivel 21), incluye 126 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> 127 128 <pre> 129 dependencies { 130 compile 'com.android.support:appcompat-v7:21.0.+' 131 compile 'com.android.support:cardview-v7:21.0.+' 132 compile 'com.android.support:recyclerview-v7:21.0.+' 133 } 134 </pre> 135 136 137 <h2 id="CheckVersion">Comprobar la versin del sistema</h2> 138 139 <p>Las siguientes caractersticas estn disponibles solo en Android 5.0 (nivel de API 21) y superior:</p> 140 141 <ul> 142 <li>Transiciones de actividades</li> 143 <li>Respuesta tctil</li> 144 <li>Animaciones con el efecto revelar</li> 145 <li>Animaciones basadas en rutas</li> 146 <li>Interfaces dibujables en vector</li> 147 <li>Matiz de la interfaz dibujable</li> 148 </ul> 149 150 <p>Para conservar la compatibilidad con versiones anteriores de Android, comprueba la {@link 151 android.os.Build.VERSION#SDK_INT version} del sistema en tiempo de ejecucin antes de invocar las API para cualquiera de estas 152 caractersticas:</p> 153 154 <pre> 155 // Check if we're running on Android 5.0 or higher 156 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { 157 // Call some material design APIs here 158 } else { 159 // Implement this feature without material design 160 } 161 </pre> 162 163 <p class="note"><strong>Nota:</strong> Para especificar qu versiones de Android admite tu aplicacin, 164 usa los atributos <code>android:minSdkVersion</code> y <code>android:targetSdkVersion</code> 165 en tu archivo de manifiesto. Para usar las caractersticas de Material Design en Android 5.0, establece el 166 atributo <code>android:targetSdkVersion</code> en <code>21</code>. Para ms informacin, consulta 167 la <a href="{@docRoot}guide/topics/manifest/uses-sdk-element.html">gua de <uses-sdk> de la 168 API</a>.</p> 169