page.title=Начало работы @jd:body

Содержание этого урока

  1. Применение темы Material Design
  2. Разработка макетов
  3. Установка высоты представлений
  4. Создание списков и карточек
  5. Настройка анимации

См. также

Порядок создания приложения с элементами Material Design

  1. Ознакомьтесь со спецификацией Material Design.
  2. Примените тему Material Design к своему приложению.
  3. Создайте макеты в соответствии с рекомендациями Material Design.
  4. Установите высоту своих представлений для отбрасывания теней.
  5. Используйте системные виджеты для списков и карточек.
  6. Настройте анимацию в своем приложении.

Обеспечение обратной совместимости

В приложении можно реализовать множество функций Material Design и одновременно сохранить его совместимость с версиями Android, предшествующими версии 5.0. Дополнительные сведения представлены на странице Обеспечение совместимости.

Обновление приложения с добавлением элементов Material Design

Чтобы дополнить существующее приложение функциями и элементами Material Design, обновите макеты в соответствии с рекомендациями Material Design. Также не забудьте добавить в приложение функции глубины, реакции на касание и анимации.

Создание новых приложений с элементами Material Design

При создании приложений с "материальными" функциями следуйте рекомендациям Material Design, которые позволят вам получить целостное представление о новых принципах дизайна. При проектировании и разработке своего приложения следуйте инструкциям и используйте новые функциональные возможности платформы Android.

Применение темы Material Design

Чтобы применить тему Material Design в своем приложении, укажите стиль, который наследует от android:Theme.Material:

<!-- res/values/styles.xml -->
<resources>
  <!-- your theme inherits from the material theme -->
  <style name="AppTheme" parent="android:Theme.Material">
    <!-- theme customizations -->
  </style>
</resources>

В теме Material Design содержатся обновленные системные виджеты, для которых можно настраивать цветовую палитру, а также стандартные анимации для реакции на касания и переходы. Дополнительные сведения представлены в разделе Использование темы Material Design.

Разработка макетов

Помимо применения и настройки темы Material Design, необходимо соответствие рекомендациям Material Design используемых макетов. При разработке макетов необходимо контролировать следующие элементы:

Определение высоты представлений

Представления могут отбрасывать тени, и значение высоты определяет размер тени и порядок ее прорисовки. Чтобы установить высоту представления, используйте в макетах атрибут android:elevation:

<TextView
    android:id="@+id/my_textview"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/next"
    android:background="@color/white"
    android:elevation="5dp" />

С помощью нового свойства translationZ можно создавать анимации, которые отражают временные изменения в высоте представления. Изменения высоты могут быть полезны при реагировании на сенсорные жесты.

Дополнительные сведения представлены в разделе Определение теней и обрезка представлений.

Создание списков и карточек

{@link android.support.v7.widget.RecyclerView} представляет собой более гибкую версию {@link android.widget.ListView}. Она поддерживает различные типы макетов и способствует повышению производительности. {@link android.support.v7.widget.CardView} обеспечивает единообразное отображение фрагментов информации внутри карточек в разных приложениях. В следующем примере показано, как включить {@link android.support.v7.widget.CardView} в макет:

<android.support.v7.widget.CardView
    android:id="@+id/card_view"
    android:layout_width="200dp"
    android:layout_height="200dp"
    card_view:cardCornerRadius="3dp">
    ...
</android.support.v7.widget.CardView>

Дополнительные сведения представлены в разделе Создание списков и карточек.

Настройка анимации

В состав Android 5.0 (уровень API 21) входят новые API для создания в приложении настраиваемой анимации. Например, можно разрешать переходы между операциями и задавать для операций конечный переход:

public class MyActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // enable transitions
        getWindow().requestFeature(Window.FEATURE_CONTENT_TRANSITIONS);
        setContentView(R.layout.activity_my);
    }

    public void onSomeButtonClicked(View view) {
        getWindow().setExitTransition(new Explode());
        Intent intent = new Intent(this, MyOtherActivity.class);
        startActivity(intent,
                      ActivityOptions
                          .makeSceneTransitionAnimation(this).toBundle());
    }
}

При запуске одной операции из другой активируется конечный переход.

Подробные сведения о новых API для анимации см. в разделе Определение настраиваемой анимации.