Home | History | Annotate | Download | only in material
      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 &lt;!-- extend one of the Theme.AppCompat themes -->
    102 &lt;style name="Theme.MyTheme" parent="Theme.AppCompat.Light">
    103     &lt;!-- customize the color palette -->
    104     &lt;item name="colorPrimary">@color/material_blue_500&lt;/item>
    105     &lt;item name="colorPrimaryDark">@color/material_blue_700&lt;/item>
    106     &lt;item name="colorAccent">@color/material_green_A200&lt;/item>
    107 &lt;/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 &lt;uses-sdk&gt; de la
    168 API</a>.</p>
    169