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 <!-- 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 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 <uses-sdk></a>.</p> 169