1page.title=Использование темы Material Design 2 3@jd:body 4 5<div id="tb-wrapper"> 6<div id="tb"> 7<h2>Содержание этого урока</h2> 8<ol> 9 <li><a href="#ColorPalette">Настройка цветовой палитры</a></li> 10 <li><a href="#StatusBar">Настройка строки состояния</a></li> 11 <li><a href="#Inheritance">Отдельные представления темы</a></li> 12</ol> 13<h2>См. также</h2> 14<ul> 15 <li><a href="http://www.google.com/design/spec">Спецификация Material Design</a></li> 16 <li><a href="{@docRoot}design/material/index.html">Material Design в Android</a></li> 17</ul> 18</div> 19</div> 20 21 22<p>Новая тема Material Design предоставляет следующие возможности:</p> 23 24<ul> 25 <li>системные виджеты, для которых можно настраивать цветовую палитру;</li> 26 <li>анимация для реакции на касание для системных виджетов;</li> 27 <li>анимация переходов между операциями.</li> 28</ul> 29 30<p>Внешний вид темы Material Design можно настроить с учетом фирменного стиля, воспользовавшись для этого цветовой палитрой. 31 Можно изменить оттенок строки действий и строки состояния, используя атрибуты темы, как показано на <a href="#fig3">рисунке 3</a>. 32</p> 33 34<p>Системные виджеты отличаются новым дизайном и анимацией отклика на касание. В своем приложении вы можете настроить цветовую палитру, анимацию отклика на касание и переходы между операциями. 35</p> 36 37<p>Тема Material Design задается следующими параметрами:</p> 38 39<ul> 40 <li><code>@android:style/Theme.Material</code> (темные цвета);</li> 41 <li><code>@android:style/Theme.Material.Light</code> (светлые цвета);</li> 42 <li><code>@android:style/Theme.Material.Light.DarkActionBar</code>.</li> 43</ul> 44 45<p>Список доступных стилей Material Design см. в справке по API для 46{@link android.R.style R.style}.</p> 47 48<!-- two columns, dark/light material theme example --> 49<div style="width:700px;margin-top:25px;margin-bottom:10px"> 50<div style="float:left;width:250px;margin-left:40px;margin-right:60px;"> 51 <img src="{@docRoot}design/material/images/MaterialDark.png" width="500" height="238"> 52 <div style="width:170px;margin:0 auto"> 53 <p style="margin-top:8px;font-size:12px"><strong>Рисунок 1</strong>. Тема Material Design в темных тонах.</p> 54 </div> 55</div> 56<div style="float:left;width:250px;margin-right:0px;"> 57 <img src="{@docRoot}design/material/images/MaterialLight.png" width="500" height="238"> 58 <div style="width:170px;margin:0 auto"> 59 <p style="margin-top:8px;font-size:12px"><strong>Рисунок 2</strong>. Тема Material Design в светлых тонах.</p> 60 </div> 61</div> 62<br style="clear:left"> 63</div> 64 65<p class="note"> 66<strong>Примечание.</strong> Темы Material Design доступны только в ОС Android 5.0 (уровень API 21) и более поздних версий. 67 Во <a href="{@docRoot}tools/support-library/features.html#v7">вспомогательных библиотеках v7</a> 68 представлены темы со стилями Material Design для некоторых виджетов. Эти библиотеки также обеспечивают поддержку настройки цветовой палитры. 69 Дополнительные сведения см. на странице 70<a href="{@docRoot}training/material/compatibility.html">Обеспечение совместимости</a>. 71</p> 72 73 74<h2 id="ColorPalette">Настройка цветовой палитры</h2> 75 76<p style="margin-bottom:30px">Для настройки основных цветов в соответствии с фирменным стилем определите настраиваемые цвета с помощью атрибутов темы при наследовании от темы Material Design: 77</p> 78 79<pre> 80<resources> 81 <!-- inherit from the material theme --> 82 <style name="AppTheme" parent="android:Theme.Material"> 83 <!-- Main theme colors --> 84 <!-- your app branding color for the app bar --> 85 <item name="android:colorPrimary">@color/primary</item> 86 <!-- darker variant for the status bar and contextual app bars --> 87 <item name="android:colorPrimaryDark">@color/primary_dark</item> 88 <!-- theme UI controls like checkboxes and text fields --> 89 <item name="android:colorAccent">@color/accent</item> 90 </style> 91</resources> 92</pre> 93 94<div style="float:right;margin-left:25px;margin-top:20px;margin-bottom:10px" id="fig3"> 95<img src="{@docRoot}training/material/images/ThemeColors.png" width="250" height="445" /> 96<p class="img-caption" style="margin-bottom:0px"> 97<strong>Рисунок 3</strong>. Настройка темы Material Design.</p> 98</div> 99 100 101<h2 id="StatusBar">Настройка строки состояния</h2> 102 103<p>В теме Material Design можно с легкостью настроить строку состояния, указав нужный цвет в соответствии с фирменным стилем и задав достаточную контрастность для отображения белых значков состояния. 104 Чтобы установить настраиваемый цвет для строки состояния, воспользуйтесь атрибутом <code>android:statusBarColor</code> при наследовании темы Material Design. 105 106 По умолчанию параметр <code>android:statusBarColor</code> наследует значение <code>android:colorPrimaryDark</code>. 107</p> 108 109<p>Кроме того, можно самостоятельно разместить элемент за строкой состояния. Например, если требуется наложить прозрачную строку состояния поверх фотографии, применив еле уловимый темный градиент, чтобы были видны белые значки состояния. 110 111 Для этого задайте для атрибута <code>android:statusBarColor</code> значение 112<code>@android:color/transparent</code> и настройте флаги окна требуемым образом. Также можно воспользоваться 113методом {@link android.view.Window#setStatusBarColor Window.setStatusBarColor()} для применения анимации или эффекта постепенного исчезания. 114</p> 115 116<p class="note"> 117<strong>Примечание.</strong> Строка состояния почти всегда должна иметь четкую границу, отделяющую ее от основной панели инструментов, за исключением случаев, когда за этими панелями от края и до края экрана отображается большое количество изображений или мультимедийный контент, а также в случае, когда вы используете градиент, чтобы обеспечить видимость значков. 118 119 120</p> 121 122<p>При настройке панели навигации и строки состояния сделайте их прозрачными либо измените только строку состояния. 123 Во всех остальных случаях панель навигации должна оставаться черной.</p> 124 125 126<h2 id="Inheritance">Отдельные представления темы</h3> 127 128<p>Элементы в определениях макета XML могут задавать атрибут <code>android:theme</code>, который ссылается на ресурс темы. 129 Этот атрибут изменяет тему для элемента и любых дочерних элементов, 130что можно использовать для изменения цветовых палитр темы в определенной области интерфейса. 131</p> 132