Статьи

Совет: создайте авторазмер текста с помощью Android O

Первый предварительный просмотр Android O для разработчиков!

В этой серии советов мы рассмотрим некоторые из новых функций пользовательского интерфейса, которые вы можете ожидать в следующем выпуске Android O (reo?).

В этом первом совете мы познакомимся с новой функцией автоматического изменения размера текста в Android O, которая позволяет создавать текст, который автоматически сокращается и расширяется в соответствии с текущим макетом.

Поскольку это наш первый взгляд на Android O здесь, на Envato Tuts +, давайте начнем с того, что наша среда разработки готова для Android O-ready.

В настоящее время вы можете получить доступ к Android O Developer Preview только через последнюю версию Android Studio.

Сборки Canary — это передовой край Android Studio, и обычно они обновляются еженедельно. Несмотря на то, что эти сборки тестируются, они менее стабильны, чем официальные выпуски Android Studio, и поэтому не рекомендуются для разработки.

Чтобы загрузить последнюю версию Canary и получить предварительный просмотр Android O, сначала запустите Android Studio и выберите Android Studio > Настройки … на панели инструментов. Выберите « Внешний вид и поведение»> «Системные настройки»> «Обновления» и в раскрывающемся меню выберите « Канарский канал» .

Переключиться на Android Studio Канарский канал

Затем нажмите соответствующую кнопку « Проверить сейчас» , чтобы загрузить последнюю версию с Канарского канала.

Затем перезапустите вашу IDE и откройте SDK Manager. Убедившись, что выбрана вкладка SDK Manager SDK Platforms , выберите компонент Android O Preview .

Откройте Android SDK Manager и загрузите O Developer Preview.

Затем переключитесь на вкладку SDK Tools и выберите следующее:

  • Android SDK Build-Tools 26.0.0 (rc1 или выше)
  • Платформа Android SDK — Инструменты 26.0.0 (rc1 или выше)
  • Эмулятор Android 26.0.0
  • Репозиторий поддержки

Нажмите кнопку ОК , чтобы загрузить все эти компоненты.

Наконец, создайте новый проект Android, нацеленный на Android O. Для простоты установите минимальный SDK проекта на Android 7+ O Preview, а затем выберите Empty Activity .

Как только Android Studio создаст ваш проект, откройте его файл build.gradle уровня модуля и измените версию buildToolsVersion версию библиотеки поддержки на последние версии:

01
02
03
04
05
06
07
08
09
10
11
12
13
apply plugin: ‘com.android.application’
 
android {
  compileSdkVersion ‘android-O’
  buildToolsVersion ‘26.0.0-rc1’
  defaultConfig {
      applicationId «com.jessicathornsby.myapplication»
      minSdkVersion ‘O’
      targetSdkVersion ‘O’
      versionCode 1
      versionName «1.0»
      testInstrumentationRunner «android.support.test.runner.AndroidJUnitRunner»
  }

На протяжении всей этой серии мы будем добавлять ряд функций Android O к этому образцу приложения. Если вы собираетесь использовать эти функции в действии, вам необходимо создать AVD, работающий с образом системы Android O. Запустите диспетчер AVD Android Studio, выберите « Создать виртуальное устройство» и следуйте инструкциям на экране, чтобы создать AVD. Вы можете использовать настройки по своему выбору, но когда Android Studio предложит вам выбрать образ системы, обязательно выберите O.

Одной из новых функций пользовательского интерфейса, которые мы можем ожидать в Android O, является автоматическое изменение размера текста. С добавлением нескольких атрибутов XML вы можете создавать TextViews, которые автоматически увеличивают и уменьшают размер вашего текста, поэтому он всегда идеально вписывается в рамки TextView.

Это автоматическое масштабирование может гарантировать, что ваш текст остается легко читаемым в огромном диапазоне размеров экрана и плотности экрана Android. Автоматическое изменение размера также может помочь вам избежать странных пустых мест в макете или текста, который обрезается в середине предложения, потому что вы пытались втиснуть слишком много слов в TextView.

Существует два способа автоматического изменения размера текста:

  • Зернистость. Этот подход позволяет указать минимальный и максимальный размер текста, а также значение гранулярности, то есть насколько ваш текст может увеличиваться или уменьшаться в размере с каждым «шагом». Затем TextView будет масштабировать ваш текст по горизонтали и вертикали с помощью этого возрастающего значения. До тех пор, пока он идеально подходит для TextView .
  • Предустановленные размеры. Здесь вы можете определить массив всех размеров, которые может иметь ваш текст. Android O затем выберет наиболее подходящий размер из этого массива, основываясь на размерах TextView .

Какой бы метод вы ни выбрали, вам всегда нужно будет добавить android:autoSizeText="uniform" XML к вашему TextView , поэтому откройте файл ресурсов макета и добавьте этот элемент сейчас.

Для реализации автоматического изменения размера с использованием гранулярности вам необходимо добавить следующие атрибуты XML в TextView :

  • autoSizeMinTextSize : минимальный размер, который может использовать TextView .
  • autoSizeMaxTextSize : максимальный размер, который может использовать TextView .
  • autoSizeStepGranularity : значение приращения. Это 1px по умолчанию.

Здесь я создаю представление, которое может изменять размер своего текста между 10sp и 100sp с шагом 2sp :

1
2
3
4
5
6
7
8
<TextView
 android:text=»This is some auto-scaling text»
 android:layout_width=»wrap_content»
 android:layout_height=»wrap_content»
 android:autoSizeText=»uniform»
 android:autoSizeMinTextSize=»10sp»
 android:autoSizeMaxTextSize=»100sp»
 android:autoSizeStepGranularity=»2sp»/>

Другой вариант — создать массив поддерживаемых размеров текста. Android O затем выберет наиболее подходящее значение из этого списка, исходя из объема отображаемого текста, размеров TextView и текущей конфигурации экрана.

Если в вашем проекте еще нет файла arrays.xml , его можно создать, щелкнув правой кнопкой мыши каталог res / values вашего проекта и выбрав « Создать»> «Файл ресурсов значений» . В появившемся окне присвойте этому файлу имена массивов и нажмите кнопку ОК .

Затем вы можете открыть новый файл res / values ​​/ arrays.xml и определить все размеры, которые вы хотите использовать в TextView .

01
02
03
04
05
06
07
08
09
10
11
12
<?xml version=»1.0″ encoding=»utf-8″?>
<resources>
  <array
      name=»autosize»>
      <item>10sp</item>
      <item>15sp</item>
      <item>25sp</item>
      <item>30sp</item>
      <item>100sp</item>
      <item>150sp</item>
  </array>
</resources>

Наконец, autoSizePresetSizes этому массиву, используя атрибут autoSizePresetSizes , например:

1
2
3
4
5
6
<TextView
 android:text=»This is some auto-scaling text»
 android:layout_width=»wrap_content»
 android:layout_height=»wrap_content»
 android:autoSizeText=»uniform»
 android:autoSizePresetSizes=»@array/autosize» />

После того, как вы добавили автоматическое изменение размера в TextView , загрузите ваш Android O AVD и посмотрите, как ваш TextView визуализируется на эмулированном экране Android O. Чтобы убедиться, что автоматическое изменение размера работает правильно, обновите свой TextView чтобы отображать различные объемы текста, а затем посмотрите, как это влияет на окончательное изображение, которое вы видите на экране.

Тестирование автоматического масштабирования текста в Android O

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

В этом кратком совете я показал вам, как создавать текст, который автоматически масштабируется. В следующем совете мы рассмотрим, как Android O собирается значительно упростить использование пользовательских шрифтов в ваших приложениях для Android. А пока ознакомьтесь с некоторыми другими нашими уроками:

  • Android SDK
    6 Что нужно и чего не нужно для отличного пользовательского опыта на Android
  • Android SDK
    Начните с RxJava 2 для Android
  • Android SDK
    Android Things: ваш первый проект
    Пол Требилкокс-Руис