Home | History | Annotate | Download | only in material
      1 page.title=Como manter a compatibilidade
      2 
      3 @jd:body
      4 
      5 <div id="tb-wrapper">
      6 <div id="tb">
      7 <h2>Esta lio ensina a</h2>
      8 <ol>
      9   <li><a href="#Theme">Definir estilos alternativos</a></li>
     10   <li><a href="#Layouts">Fornecer layouts alternativos</a></li>
     11   <li><a href="#SupportLib">Usar a Biblioteca de Suporte</a></li>
     12   <li><a href="#CheckVersion">Verificar a verso do sistema</a></li>
     13 </ol>
     14 <h2>Voc tambm deve ler</h2>
     15 <ul>
     16   <li><a href="http://www.google.com/design/spec">Especificaes do Material Design</a></li>
     17   <li><a href="{@docRoot}design/material/index.html">Material Design no Android</a></li>
     18 </ul>
     19 </div>
     20 </div>
     21 
     22 
     23 <p>Alguns recursos do Material Design, como o tema do Material e transies personalizadas de atividades, esto
     24 disponveis apenas no Android 5.0 (API de nvel 21) e posteriores. Contudo, voc pode projetar os aplicativos
     25 para usar esses recursos ao execut-los em dispositivos compatveis com o Material Design e ainda mant-los
     26 compatveis com dispositivos executando verses anteriores do Android.</p>
     27 
     28 
     29 <h2 id="Theme">Definir estilos alternativos</h2>
     30 
     31 <p>Voc pode configurar o aplicativo para usar o tema do Material em dispositivos compatveis
     32 com ele e reverter para um tema antigo em dispositivos que executem verses anteriores do Android:</p>
     33 
     34 <ol>
     35 <li>Defina um tema herdado de um tema antigo (como Holo) em
     36     <code>res/values/styles.xml</code>.</li>
     37 <li>Defina um tema com o mesmo nome herdado do tema do Material em
     38     <code>res/values-v21/styles.xml</code>.</li>
     39 <li>Defina esse tema como o tema do seu aplicativo no arquivo de manifesto.</li>
     40 </ol>
     41 
     42 <p class="note"><strong>Observao:</strong>
     43 se o seu aplicativo usa o tema do Material mas no fornece um tema alternativo dessa maneira,
     44 o aplicativo no rodar em verses mais antigas do que o Android 5.0.
     45 </p>
     46 
     47 
     48 <h2 id="Layouts">Fornecer layouts alternativos</h2>
     49 
     50 <p>Se os layouts que voc projetou de acordo com as orientaes do Material Design no usarem
     51 quaisquer dos novos atributos XML introduzidos no Android 5.0 (API de nvel 21), eles funcionaro em
     52 verses antigas do Android. Caso contrrio, voc pode fornecer layouts alternativos. Voc tambm pode fornecer
     53 layouts alternativos para personalizar a aparncia do seu aplicativo em verses anteriores do Android.</p>
     54 
     55 <p>Crie arquivos de layout para Android 5.0 (API de nvel 21) dentro de <code>res/layout-v21/</code> e arquivos de
     56 layout alternativo para verses anteriores do Android dentro de <code>res/layout/</code>.
     57 Por exemplo, <code>res/layout/my_activity.xml</code>  um layout alternativo de
     58 <code>res/layout-v21/my_activity.xml</code>.</p>
     59 
     60 <p>Para evitar duplicao do cdigo, defina os estilos dentro de <code>res/values/</code>, modifique-os
     61 em <code>res/values-v21/</code> para as novas APIs e use herana de estilo, definindo
     62 estilos de base em <code>res/values/</code> e herdando daqueles em <code>res/values-v21/</code>.</p>
     63 
     64 
     65 <h2 id="SupportLib">Usar a Biblioteca de Suporte</h2>
     66 
     67 <p>A <a href="{@docRoot}tools/support-library/features.html#v7">v7 da Biblioteca de Suporte</a>
     68 r21 e posteriores incluem os seguintes recursos do Material Design:</p>
     69 
     70 <ul>
     71 <li><a href="{@docRoot}training/material/theme.html">Estilos do Material Design</a> para alguns widgets do
     72 sistema quando se aplica um dos temas <code>Theme.AppCompat</code>.</li>
     73 <li><a href="{@docRoot}training/material/theme.html#ColorPalette">Atributos de tema da paleta de cores</a>
     74     nos temas <code>Theme.AppCompat</code>.</li>
     75 <li>O widget {@link android.support.v7.widget.RecyclerView} para <a href="{@docRoot}training/material/lists-cards.html#RecyclerView">exibir colees
     76     de dados</a>.</li>
     77 <li>O widget {@link android.support.v7.widget.CardView} para <a href="{@docRoot}training/material/lists-cards.html#CardView">criar cartes</a>.</li>
     78 <li>A classe {@link android.support.v7.graphics.Palette} para <a href="{@docRoot}training/material/drawables.html#ColorExtract">extrair cores proeminentes de
     79     imagens</a>.</li>
     80 </ul>
     81 
     82 <h3>Widgets de sistema</h3>
     83 
     84 <p>Os temas <code>Theme.AppCompat</code> fornecem estilos do Material Design para os seguintes 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 cores</h3>
     96 
     97 <p>Para obter estilos do Material Design e personalizar a paleta de cores com a v7 da Biblioteca de Suporte
     98 do Android, aplique um dos 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 e cartes</h3>
    111 
    112 <p>Os widgets {@link android.support.v7.widget.RecyclerView} e {@link
    113 android.support.v7.widget.CardView} esto disponveis em verses anteriores do Android na
    114 Biblioteca de Suporte v7 do Android com as seguintes limitaes:</p>
    115 <ul>
    116 <li>{@link android.support.v7.widget.CardView} volta a uma implementao de sombra programtica
    117    usando preenchimento adicional.</li>
    118 <li>{@link android.support.v7.widget.CardView} no recorta as visualizaes filhas que cortam
    119     as bordas arredondadas.</li>
    120 </ul>
    121 
    122 
    123 <h3>Dependncias</h3>
    124 
    125 <p>Para usar esses recursos em verses anteriores ao Android 5.0 (API de nvel 21), inclua a
    126 Biblioteca de Suporte v7 do Android no projeto como uma <a href="{@docRoot}sdk/installing/studio-build.html#dependencies">dependncia 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">Verificar a verso do sistema</h2>
    138 
    139 <p>Os recursos a seguir esto disponveis somente no Android 5.0 (API de nvel 21) e em posteriores:</p>
    140 
    141 <ul>
    142 <li>Transies de atividades</li>
    143 <li>Feedback de toque</li>
    144 <li>Animaes de revelao</li>
    145 <li>Animaes com base em caminhos</li>
    146 <li>Desenhveis de vetor</li>
    147 <li>Tingimento desenhvel</li>
    148 </ul>
    149 
    150 <p>Para preservar a compatibilidade com verses anteriores do Android, verifique a {@link
    151 android.os.Build.VERSION#SDK_INT version} do sistema em tempo de execuo antes de chamar as APIs para quaisquer
    152 destes recursos:</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>Observao:</strong> Para especificar quais verses do Android so compatveis com o seu aplicativo,
    164 use os atributos <code>android:minSdkVersion</code> e <code>android:targetSdkVersion</code>
    165 no arquivo de manifesto. Para usar os recursos do Material Design no Android 5.0, defina o
    166 atributo <code>android:targetSdkVersion</code> como <code>21</code>. Para obter mais informaes, consulte
    167 o <a href="{@docRoot}guide/topics/manifest/uses-sdk-element.html">guia de API
    168 &lt;uses-sdk&gt;</a>.</p>
    169