page.title=Работа с элементами дизайна @jd:body
Указанные ниже возможности по работе с элементами дизайна позволяют реализовать в приложении элементы Material Design:
В этом уроке рассматривается порядок использования этих функций в приложении.
В Android 5.0 (уровень API 21) и более поздних версий можно тонировать растровые изображения и изображения в формате NinePatch, определенные как
альфа-маски. Для тонирования можно применять как цветовые ресурсы, так и атрибуты темы, которые
разрешаются в цветовые ресурсы (например, ?android:attr/colorPrimary). Обычно такие ресурсы создаются
только один раз, после чего они автоматически окрашиваются для соответствия цветам темы.
Тонирование можно применить к объектам {@link android.graphics.drawable.BitmapDrawable} и {@link
android.graphics.drawable.NinePatchDrawable} с помощью метода {@code setTint()}. Также можно
задать цвет и способ тонирования в макетах, используя для этого атрибуты android:tint и
android:tintMode.
Во вспомогательной библиотеке Android r21 и более поздних версий содержится класс {@link android.support.v7.graphics.Palette}, с помощью которого можно извлекать следующие главные цвета на изображении:
Для извлечения этих цветов передайте объект {@link android.graphics.Bitmap} в статический метод {@link android.support.v7.graphics.Palette#generate Palette.generate()} в фоновом потоке, где загружаются изображения. Если невозможно использовать этот поток, вместо этого вызовите метод {@link android.support.v7.graphics.Palette#generateAsync Palette.generateAsync()} и укажите модуль прослушивания.
Извлечь главные цвета на изображении можно также с помощью методов getter из класса
Palette, таких как Palette.getVibrantColor.
Чтобы использовать класс {@link android.support.v7.graphics.Palette} в своем проекте, добавьте в модуль своего приложения следующую зависимость Gradle:
dependencies {
...
compile 'com.android.support:palette-v7:21.0.0'
}
Дополнительные сведения представлены в справке по API для класса {@link android.support.v7.graphics.Palette} .
Векторная графика в Android
В Android 5.0 (уровень API 21) и более поздних версий имеется возможность определить векторные элементы, которые можно масштабировать без ущерба для четкости.
Для векторного изображения требуется лишь один файл ресурсов, тогда как для растровых изображений необходим отдельный файл ресурсов для каждой плотности экрана.
Чтобы создать векторное изображение, укажите детали формы в XML-элементе <vector>.
В следующем примере создается векторное изображение в форме сердца.
<!-- res/drawable/heart.xml -->
<vector xmlns:android="http://schemas.android.com/apk/res/android"
<!-- intrinsic size of the drawable -->
android:height="256dp"
android:width="256dp"
<!-- size of the virtual canvas -->
android:viewportWidth="32"
android:viewportHeight="32">
<!-- draw a path -->
<path android:fillColor="#8fff"
android:pathData="M20.5,9.5
c-1.955,0,-3.83,1.268,-4.5,3
c-0.67,-1.732,-2.547,-3,-4.5,-3
C8.957,9.5,7,11.432,7,14
c0,3.53,3.793,6.257,9,11.5
c5.207,-5.242,9,-7.97,9,-11.5
C25,11.432,23.043,9.5,20.5,9.5z" />
</vector>
Векторные изображения представлены в Android как объекты {@link android.graphics.drawable.VectorDrawable}.
Дополнительные сведения о синтаксисе pathData см. в справке по траекториям SVG. Дополнительные сведения
об анимации свойств векторных элементов см. в разделе
Анимация векторных элементов.