Tools context android что это

What is tools:context in Android layout files?

Whenever you create a project in Android Studio or add an activity in Android Studio, then in the layout file of your activity, you must have seen one line that is added automatically to your file, saying:

What is this used for? Do you have any idea? Don’t worry, in this blog, we will learn the need for tools:context in Android layout files. So, let’s get started.

Following is the code that is present(by default) in your layout file when you create an activity:

In the above code, the basic need of tools:context is to tell which activity or fragment the layout file is associated with by default. So, you can specify the activity class name using the same dot prefix as used in Manifest file.

The tools:context has a primary role in defining which Activity or Fragment class has instantiated the layout which is being defined.

By doing so, the Android Studio will choose the necessary theme for the preview automatically and you don’t have to do the preview settings manually. As we all know that a layout file can be associated with several activities but the themes are defined in the Manifest file and these themes are associated with your activity. So, by adding tools:context in your layout file, the Android Studio preview will automatically choose the necessary theme for you.

Apart from this, the tools:context is used for rendering the action bar or it can be used to find the correct place to insert the onClick handlers when you want to perform some click operations.

Tools context android что это. what is tools context in android layout file. Tools context android что это фото. Tools context android что это-what is tools context in android layout file. картинка Tools context android что это. картинка what is tools context in android layout file

onClick handlers are an alternative of setOnClickListener().

We can summarize the whole concept by saying that tools:context attribute is used in the root element of the layout file and it tells which activity or fragment the layout file is associated with. It is used for a better preview of the current layout and views.

Hope you learned something new today.

Do share this blog with your fellow developers to spread the knowledge. You can read more blogs on Android on our blogging website.

Источник

Пространство имён Tools

При создании нового проекта, когда вы проектировали макет для экрана активности, то, наверняка, замечали загадочные строчки у корневого элемента со словом tools:

Настало время сорвать покровы и использовать новые возможности.

Привычное пространство имён xmlns:android позволяет настраивать внешний вид и поведение компонентов в Android-приложении. А новое пространство имён xmlns:tools позволяет среде разработки (в нашем случае, Android Studio) правильно отобразить компоненты для просмотра в режиме дизайна.

Причём возможности данного инструмента гораздо выше, чем многие себе представляют.

Для начала приведу простой пример, который многие оценят по достоинству. Представьте себе, что у вас есть компонент пустой TextView, который получает текст с сервера. Чтобы визуально представить себе, как будет выглядеть текст, не соединяясь с сервером, вам нужно временно присвоить какой-нибудь текст. А потом не забыть удалить его при создании релиза. А можно поступить проще. Инструмент tools дублирует многие визуальные атрибуты пространства имён android и вы можете заменить его следующим образом.

В реальности у текстовой метки нет текста, но в окне предварительного просмотра вы можете видеть текст и оценить дизайн. Напомню, что эта настройка относится только к среде разработки, а не к вашему приложению. Поэтому теперь можно не волноваться, что однажды вы забудете удалить временный текст. Попробуйте теперь поменять цвет фона с помощью атрибута tools:background =»#ваш_цвет». Получилось?

Кроме визуальных атрибутов, tools может использоваться для взаимодействия с инструментом Lint, который пытается подсказать при проблемном коде. К этим атрибутам можно отнести

tools:ignore

Атрибут tools:ignore похож по своему поведению на Java-аннотацию @SuppressWarnings, подсказывающему инструменту Lint не обращать внимания на код. Аналогично можно не обращать на какой-то атрибут в XML-файле.

tools:targetApi

Атрибут tools:targetApi работает аналогично аннотации @TargetApi и говорит о минимальной версии API, которая будет использована для ресурсов.

Например, ваш проект использует минимальный уровень minSdkLevel = 15, а вы используете объекты RippleDrawable в качестве ресурсов в общей папке, а не в папке drawable-v21. Но если вы контролируете ситуацию и знаете, что для старых устройств есть другие ресурсы, то можете подавить предупреждение:

tools:locale

Атрибут tools:locale поможет вам подавить предупреждения Lint о неправильном правописании, выступая в качестве грамар-наци. Проблема в том, что Lint содержит проверку орфографии только на английском языке. И если ваши строковые ресурсы содержат русский текст, то его предупреждения бесполезны. Отключаем их:

Рассмотрим теперь другие доступные атрибуты.

tools:context

Атрибут tools:context у корневого элемента позволяет определить связь между макетом и классом активности, в которой данный макет будет реализован. Помогает студии сформировать в окне предварительного просмотра внешний вид, подтягивая нужную тему.

tools:layout

Атрибут tools:layout используется в разметке фрагмента, чтобы вывести макет фрагмента на экране активности.

tools:showIn

Атрибут tools:showIn позволяет указать, какую разметку нужно использовать для вывода в окне предварительного просмотра. Это может пригодиться для тега merge:

tools:menu

Атрибут tools:menu подсказывает среде разработке, какое меню нужно отобразить в окне предварительного просмотра. Также используется в корневом элементе разметки.

Если не хотите выводить меню, то оставьте пустую строку. Данный атрибут не работает с темой Theme.AppCompat и производных от неё.

tools:actionBarNavMode

Атрибут tools:actionBarNavMode отвечает за внешний вид панели действий ActionBar. Он также размещается в корневом элементе разметки, не работает с темами Theme.AppCompat и Theme.Material и не действует при использовании Toolbar вместо ActionBar.

Доступны три варианта:

tools:listitem / listheader / listfooter

Атрибуты для заголовка и футера могут работать только для ListView, а для GridView не работает.

Для сравнения как выглядят экраны активности с использованием tools: и без него.

Tools context android что это. tools1. Tools context android что это фото. Tools context android что это-tools1. картинка Tools context android что это. картинка tools1

Tools context android что это. tools2. Tools context android что это фото. Tools context android что это-tools2. картинка Tools context android что это. картинка tools2

Мы видим вкладки, элементы меню, другую разметку для списка.

tools:layoutManager

В RecyclerView можно использовать менеджер разметок с указанием различных параметров.

tools:itemCount

Обычно студия выводит десять элементов списка в RecyclerView. Вы можете изменить это поведение данным атрибутом.

tools:openDrawer

В студии 1.4 появился новый атрибут tools:openDrawer, управляющий состоянием навигационной шторки для DrawerLayout. При значении start будет показана шторка в выдвинутом виде. Доступны значения: start, end, left, right.

tools:minValue/tools:maxValue

Атрибуты для компонента NumberPicker для задания минимального и максимального значения.

tools:src

Можно указать графический ресурс. Полезно для ImageView, когда используется пустое изображение при запуске приложения и затем скачивается картинка с сервера. Позже появилась другая удобная возможность (см. ниже)

tools:layout_height/tools:layout_width

tools:background

tools:src=»http://developer.alexanderklimov.ru/android/studio/@tools:sample/»

В студии версии 3.0 появились новые возможности. Теперь вы можете задать аватар, имя и случайный текст без создания собственных ресурсов. Это бывает полезно, когда ресурсы берутся из внешнего источника. Вам не нужно создавать временные ресурсы, которые увеличивают размер приложения и которые можно забыть удалить.

Например, можно задать изображение для ImageView:

Если у вас несколько ImageView, то изображения будут разными! Просмотреть весь набор можно в папке ..\plugins\android\lib\sampleData.

Можно задать текст для TextView:

Можно задать случайный фон

Пример применения некоторых атрибутов.

Tools context android что это. tools3. Tools context android что это фото. Tools context android что это-tools3. картинка Tools context android что это. картинка tools3

Но это ещё не всё. Если вас не устраивают изображения (там нет котов!) или тексты, предлагаемые студией, то можно задать свои изображения и тексты. Из контекстного меню папки res выбираем New | Sample Data Directory. В модуле app появится папка sampleData. Создайте текстовый файл с именем names и добавьте построчно различные имена: Барсик, Мурзик, Рыжик, Васька и т.д.

Заменим tools:text=»@tools:sample/full_names» на tools:text=»@sample/names». Теперь вместо непонятных иностранных имён будут отображаться правильные нормальные имена.

По такому же принципу можно создать собственные изображения для аватаров. В папке sampleData создайте подпапку avatars (имя произвольное) и разместите в ней нужные файлы изображений.

Можно создать сложный вариант сочетаний имён и городов. Опять в той же папке sampleData создаём JSON-файл следующего содержания.

Можете обращаться к созданному файлу через атрибуты:

Источник

Что такое «инструменты: контекст» в файлах макета Android?

Начиная с недавней новой версии ADT, я заметил этот новый атрибут в файлах XML макета, например:

Для чего используется «инструменты: контекст»?

Откуда он знает точный путь к деятельности, которая там написана? Это смотрит на пакет приложения, внутри манифеста?

Это ограничено классами, которые расширяют Контекст или только действия? Это можно использовать для элементов ListView и т. Д.?

Это действие, которое инструменты редактора пользовательского интерфейса используют для визуализации предварительного просмотра макета. Это задокументировано здесь :

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

Этим атрибутом является в основном постоянство для выбора «Связанное действие» над макетом. Во время выполнения макет всегда связан с действием. Конечно, это может быть связано с более чем одним, но по крайней мере с одним. В инструменте нам нужно знать об этом отображении (которое во время выполнения происходит в другом направлении; действие может вызывать setContentView (layout) для отображения макета) для управления определенными функциями.

Причина, по которой это атрибут tools: namespace, заключается в том, что это только отображение времени разработки для использования инструментом. Сам макет может использоваться несколькими действиями / фрагментами и т. Д. Мы просто хотим дать вам способ выбрать привязку времени разработки, чтобы мы могли, например, показать правильную тему; Вы можете изменить его в любое время, так же, как вы можете изменить наш список, привязки фрагментов и т. д.

(Вот полный набор изменений, который имеет более подробную информацию об этом )

И да, ссылка Николая, указанная выше, показывает, как выглядит и работает новая программа выбора конфигурации.

Источник

Облегчаем жизнь Android-разработчика c помощью Tools

Tools context android что это. thumb 80e95fce07e5f138e45c0194a3da992c. Tools context android что это фото. Tools context android что это-thumb 80e95fce07e5f138e45c0194a3da992c. картинка Tools context android что это. картинка thumb 80e95fce07e5f138e45c0194a3da992c

Tools context android что это. thumb 80e95fce07e5f138e45c0194a3da992c. Tools context android что это фото. Tools context android что это-thumb 80e95fce07e5f138e45c0194a3da992c. картинка Tools context android что это. картинка thumb 80e95fce07e5f138e45c0194a3da992c

Tools context android что это. retina 9d30a84c52a7d14fce23369eca793d7c. Tools context android что это фото. Tools context android что это-retina 9d30a84c52a7d14fce23369eca793d7c. картинка Tools context android что это. картинка retina 9d30a84c52a7d14fce23369eca793d7c

Tools — это инструмент для работы с XML-файлами в Android. Он поддерживает множество полезных атрибутов, особенно при вёрстке экранов. Чтобы воспользоваться его атрибутами, в файле XML нужно прописать namespace (пространство имен) этого инструмента в корневом элементе, по аналогии с примерами ниже:

Tools context android что это. retina 91af72fc34f8a0a58cf6df9feb274113. Tools context android что это фото. Tools context android что это-retina 91af72fc34f8a0a58cf6df9feb274113. картинка Tools context android что это. картинка retina 91af72fc34f8a0a58cf6df9feb274113

И просто добавляете такую строку:

Tools context android что это. retina 8adb22bac9103440ab98a01ffe859991. Tools context android что это фото. Tools context android что это-retina 8adb22bac9103440ab98a01ffe859991. картинка Tools context android что это. картинка retina 8adb22bac9103440ab98a01ffe859991

Тогда чем отличается ещё один namespace от двух выше? Дело в том, что при сборке приложения атрибуты с тегом tools не попадают в итоговый проект, а значит, и в приложение, которое устанавливается на смартфон. Возникает закономерный вопрос: а зачем нам использовать атрибуты, которые всё равно не попадают в приложение и не влияют ни на что? А вот очень даже влияют.

Представьте себе ситуацию: вы верстаете экран, на котором отображается список. Но самого списка у вас нет — он приходит с какого-то сервера. Или текстовые поля с именем и фамилией пользователя. Пользователи могут быть разные, поэтому заранее написать имя пользователя в полях нельзя. Просто написать атрибут для текста, чтобы увидеть, как имя будет выглядеть в вёрстке, нельзя. Ведь тогда пользователь будет видеть какое-то имя до того, как с сервера придёт обновление с правильным именем:

Tools context android что это. retina 9fee6262a676252ac129d8a7d2362a1b. Tools context android что это фото. Tools context android что это-retina 9fee6262a676252ac129d8a7d2362a1b. картинка Tools context android что это. картинка retina 9fee6262a676252ac129d8a7d2362a1b

А вот если заменить android на tools, то во время вёрстки текст будет виден, и вы сможете посмотреть, как он выглядит. Но в финальную сборку этот атрибут уже не попадёт, и имя будет отображаться только тогда, когда оно загрузится с сервера. Удобно, не правда ли?

Tools context android что это. retina 3b132fceaee09820ca63e4602018860c. Tools context android что это фото. Tools context android что это-retina 3b132fceaee09820ca63e4602018860c. картинка Tools context android что это. картинка retina 3b132fceaee09820ca63e4602018860c

Давайте посмотрим, какие ещё возможности предоставляет инструмент tools.

Заменяем android на tools для любого атрибута

Мы уже говорили,как можно использовать tools для подстановки текста. Но, в принципе, его можно применять для любого атрибута. Например, кнопка не видна по умолчанию, но в вёрстке на неё можно посмотреть и убедиться, что она стоит на своём месте и выглядит как положено. Для этого мы, помимо видимости через invisible, прописываем видимость через tools только для себя.

Tools context android что это. retina 84c66512b3228ad2f51c1bb93afd8d84. Tools context android что это фото. Tools context android что это-retina 84c66512b3228ad2f51c1bb93afd8d84. картинка Tools context android что это. картинка retina 84c66512b3228ad2f51c1bb93afd8d84

Используем tools в работе со списками

Один из наиболее часто используемых элементов в вёрстке — список. И для него у tools есть много полезных атрибутов. ItemCount показывает на экране предпросмотра ровно столько элементов, сколько вы хотите увидеть.

Tools context android что это. retina d16e3df04881b34b7c7f5f103263a684. Tools context android что это фото. Tools context android что это-retina d16e3df04881b34b7c7f5f103263a684. картинка Tools context android что это. картинка retina d16e3df04881b34b7c7f5f103263a684

Также можно посмотреть, как будет выглядеть типовой список. Для этого в Android Studio есть свои шаблоны. Чтобы не смотреть на список по умолчанию, можно отобразить элемент списка. Используйте для этого listitem, как в примере ниже.

Tools context android что это. retina ebfb775be1e19383b541ad52ad645042. Tools context android что это фото. Tools context android что это-retina ebfb775be1e19383b541ad52ad645042. картинка Tools context android что это. картинка retina ebfb775be1e19383b541ad52ad645042

Tools context android что это. retina 1048645d85a19e43f7693f6a1f42d6b2. Tools context android что это фото. Tools context android что это-retina 1048645d85a19e43f7693f6a1f42d6b2. картинка Tools context android что это. картинка retina 1048645d85a19e43f7693f6a1f42d6b2

Более того, в качестве элемента списка вы можете выбрать и другой шаблон:

Tools context android что это. retina 43fd15d48af81887008c34c6bc12eb74. Tools context android что это фото. Tools context android что это-retina 43fd15d48af81887008c34c6bc12eb74. картинка Tools context android что это. картинка retina 43fd15d48af81887008c34c6bc12eb74

Атрибут

Значение

Случайные имя и фамилия

Случайные названия городов

Случайные почтовые индексы

Случайные телефонные номера формата (800) 555-ХХХХ

Случайные даты в разном формате

Случайные даты в разном формате

Случайные даты в разном формате

Случайные даты в разном формате

Случайные даты в разном формате

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

Tools context android что это. retina 3f13c4e5704afd4eabee59cd9a2d4381. Tools context android что это фото. Tools context android что это-retina 3f13c4e5704afd4eabee59cd9a2d4381. картинка Tools context android что это. картинка retina 3f13c4e5704afd4eabee59cd9a2d4381

Но и это ещё не всё. Если у вас уже есть макет элемента списка, то вы можете передать в список именно его, чтобы видеть, как именно будет выглядеть ваш список. Вот так:

Tools context android что это. retina 3adccbb433781f3a7883a6aab1534da4. Tools context android что это фото. Tools context android что это-retina 3adccbb433781f3a7883a6aab1534da4. картинка Tools context android что это. картинка retina 3adccbb433781f3a7883a6aab1534da4

Отображаем фрагмент макета

Если вы хотите увидеть фрагмент (fragment) внутри активити (activity), то для этого у tools есть отдельный атрибут. Без него у вас будет просто серое поле на месте фрагмента:

Tools context android что это. retina 9cec179074864ec2dcdf569ac5a7035b. Tools context android что это фото. Tools context android что это-retina 9cec179074864ec2dcdf569ac5a7035b. картинка Tools context android что это. картинка retina 9cec179074864ec2dcdf569ac5a7035b

То же самое можно сделать с любым макетом, который отображается через include, если использовать атрибут showIn:

Tools context android что это. retina f1e036b735b144b4ff4d0089c381f421. Tools context android что это фото. Tools context android что это-retina f1e036b735b144b4ff4d0089c381f421. картинка Tools context android что это. картинка retina f1e036b735b144b4ff4d0089c381f421

Проверяем отображение Navigation Drawer

Если вы используете Drawer в вашем приложении, неплохо было бы знать, как он смотрится на экране вёрстки, потому что он не отображается там по умолчанию. Тут нам поможет tools:openDrawer и его параметры left/right/end/start в зависимости от того, с какой стороны должен открываться Drawer:

Tools context android что это. retina 4f066d4751c4dd83ddbcedcfc5e475ff. Tools context android что это фото. Tools context android что это-retina 4f066d4751c4dd83ddbcedcfc5e475ff. картинка Tools context android что это. картинка retina 4f066d4751c4dd83ddbcedcfc5e475ff

Создаём собственные шаблоны

Помимо шаблонов Android Studio, например, для списков, можно создавать свои собственные шаблоны с теми данными, которые вам нужны. Возможно, вам нужны шаблоны не только на английском языке. Шаблоны создаются в виде простых json-файлов. Для этого нужно создать отдельную папку в вашем проекте:

Tools context android что это. retina 2f77093cc3e98f2740b70b741d17fb94. Tools context android что это фото. Tools context android что это-retina 2f77093cc3e98f2740b70b741d17fb94. картинка Tools context android что это. картинка retina 2f77093cc3e98f2740b70b741d17fb94

В папке можно создать нужный вам файл и заполнить его данными.

Tools context android что это. retina a6e7b4fcc62198705dcc05cf286132ea. Tools context android что это фото. Tools context android что это-retina a6e7b4fcc62198705dcc05cf286132ea. картинка Tools context android что это. картинка retina a6e7b4fcc62198705dcc05cf286132ea

Теперь эти данные можно использовать в качестве шаблона в своей вёрстке.

Tools context android что это. retina 74aa25c9710c4109bbc8e07dfbefa0de. Tools context android что это фото. Tools context android что это-retina 74aa25c9710c4109bbc8e07dfbefa0de. картинка Tools context android что это. картинка retina 74aa25c9710c4109bbc8e07dfbefa0de

Атрибутов есть ещё огромное количество. Как говорилось выше — попробуйте заменить android на tools. Хотя есть и специфические. Подробнее можно почитать в официальной документации Android.

Tools context android что это. retina 9d30a84c52a7d14fce23369eca793d7c. Tools context android что это фото. Tools context android что это-retina 9d30a84c52a7d14fce23369eca793d7c. картинка Tools context android что это. картинка retina 9d30a84c52a7d14fce23369eca793d7c

Tools — это инструмент для работы с XML-файлами в Android. Он поддерживает множество полезных атрибутов, особенно при вёрстке экранов. Чтобы воспользоваться его атрибутами, в файле XML нужно прописать namespace (пространство имен) этого инструмента в корневом элементе, по аналогии с примерами ниже:

Tools context android что это. retina 91af72fc34f8a0a58cf6df9feb274113. Tools context android что это фото. Tools context android что это-retina 91af72fc34f8a0a58cf6df9feb274113. картинка Tools context android что это. картинка retina 91af72fc34f8a0a58cf6df9feb274113

И просто добавляете такую строку:

Tools context android что это. retina 8adb22bac9103440ab98a01ffe859991. Tools context android что это фото. Tools context android что это-retina 8adb22bac9103440ab98a01ffe859991. картинка Tools context android что это. картинка retina 8adb22bac9103440ab98a01ffe859991

Тогда чем отличается ещё один namespace от двух выше? Дело в том, что при сборке приложения атрибуты с тегом tools не попадают в итоговый проект, а значит, и в приложение, которое устанавливается на смартфон. Возникает закономерный вопрос: а зачем нам использовать атрибуты, которые всё равно не попадают в приложение и не влияют ни на что? А вот очень даже влияют.

Представьте себе ситуацию: вы верстаете экран, на котором отображается список. Но самого списка у вас нет — он приходит с какого-то сервера. Или текстовые поля с именем и фамилией пользователя. Пользователи могут быть разные, поэтому заранее написать имя пользователя в полях нельзя. Просто написать атрибут для текста, чтобы увидеть, как имя будет выглядеть в вёрстке, нельзя. Ведь тогда пользователь будет видеть какое-то имя до того, как с сервера придёт обновление с правильным именем:

Tools context android что это. retina 9fee6262a676252ac129d8a7d2362a1b. Tools context android что это фото. Tools context android что это-retina 9fee6262a676252ac129d8a7d2362a1b. картинка Tools context android что это. картинка retina 9fee6262a676252ac129d8a7d2362a1b

А вот если заменить android на tools, то во время вёрстки текст будет виден, и вы сможете посмотреть, как он выглядит. Но в финальную сборку этот атрибут уже не попадёт, и имя будет отображаться только тогда, когда оно загрузится с сервера. Удобно, не правда ли?

Tools context android что это. retina 3b132fceaee09820ca63e4602018860c. Tools context android что это фото. Tools context android что это-retina 3b132fceaee09820ca63e4602018860c. картинка Tools context android что это. картинка retina 3b132fceaee09820ca63e4602018860c

Давайте посмотрим, какие ещё возможности предоставляет инструмент tools.

Заменяем android на tools для любого атрибута

Мы уже говорили,как можно использовать tools для подстановки текста. Но, в принципе, его можно применять для любого атрибута. Например, кнопка не видна по умолчанию, но в вёрстке на неё можно посмотреть и убедиться, что она стоит на своём месте и выглядит как положено. Для этого мы, помимо видимости через invisible, прописываем видимость через tools только для себя.

Tools context android что это. retina 84c66512b3228ad2f51c1bb93afd8d84. Tools context android что это фото. Tools context android что это-retina 84c66512b3228ad2f51c1bb93afd8d84. картинка Tools context android что это. картинка retina 84c66512b3228ad2f51c1bb93afd8d84

Используем tools в работе со списками

Один из наиболее часто используемых элементов в вёрстке — список. И для него у tools есть много полезных атрибутов. ItemCount показывает на экране предпросмотра ровно столько элементов, сколько вы хотите увидеть.

Tools context android что это. retina d16e3df04881b34b7c7f5f103263a684. Tools context android что это фото. Tools context android что это-retina d16e3df04881b34b7c7f5f103263a684. картинка Tools context android что это. картинка retina d16e3df04881b34b7c7f5f103263a684

Также можно посмотреть, как будет выглядеть типовой список. Для этого в Android Studio есть свои шаблоны. Чтобы не смотреть на список по умолчанию, можно отобразить элемент списка. Используйте для этого listitem, как в примере ниже.

Tools context android что это. retina ebfb775be1e19383b541ad52ad645042. Tools context android что это фото. Tools context android что это-retina ebfb775be1e19383b541ad52ad645042. картинка Tools context android что это. картинка retina ebfb775be1e19383b541ad52ad645042

Tools context android что это. retina 1048645d85a19e43f7693f6a1f42d6b2. Tools context android что это фото. Tools context android что это-retina 1048645d85a19e43f7693f6a1f42d6b2. картинка Tools context android что это. картинка retina 1048645d85a19e43f7693f6a1f42d6b2

Более того, в качестве элемента списка вы можете выбрать и другой шаблон:

Источник

Пишем Android приложение для киноманов — Часть 2 (Дизайн)

Tools context android что это. image loader. Tools context android что это фото. Tools context android что это-image loader. картинка Tools context android что это. картинка image loader

В этой статье мы рассмотрим процесс создания экранов, опираясь на макеты из первой части.

Верстка экранов

Главный экран

На главном экране будут располагаться фрагменты и меню навигации. Напишем меню, предварительно создав иконки. Для этого откроем папку drawable, нажмем New и выберем Vector Assets. В появившемся окне нажмем на Clip Art и выберем иконки Settings, Search и Сontent paste. Размер оставим 24 на 24.

Создадим в папке values файл strings и добавим следующие строчки:

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

Теперь перейдем непосредственно к созданию меню. В папке menu создадим Menu resourse file, назовем его «bottom_nav_menu» и добавим в него следующий код:

Создадим в папке values файл styles и добавим следующий код:

После этого можно приступать непосредственно к созданию layout для Activity. В папке layout создадим Layout resourse file, назовем его «activity_main» и добавим следующий код:

Посмотрим что получилось.

Tools context android что это. image loader. Tools context android что это фото. Tools context android что это-image loader. картинка Tools context android что это. картинка image loader

Экран для вкладки Home

Откроем файл styles и добавим стили для Toolbar с дочерним TextView и RecyclerView:

В файл strings добавим следующие строчки:

Теперь создадим layout с названием «fragment_home» и добавим в него следующий код:

Добавим в папку drawable иконки Notification и Notification none.

Перейдем к созданию элемента списка. Добавим файл «item_movie» в папку layout и напишем в нем следующий код:

Посмотрим на результат:

Tools context android что это. image loader. Tools context android что это фото. Tools context android что это-image loader. картинка Tools context android что это. картинка image loader

Экран для вкладки Search

В файл strings добавим заголовок для Toolbar:

И создадим layout с именем «fragment_search«, попутно добавив следующий блок кода:

Tools context android что это. image loader. Tools context android что это фото. Tools context android что это-image loader. картинка Tools context android что это. картинка image loader

Экран для вкладки Settings

Этот экран получился самым объемным, поскольку в нем мало повторяющихся стилей.

Добавим в файл styles код для TextView и CardView:

Также добавим в файл strings еще пару строчек:

Еще потребуется добавить в папку drawable иконку Star border.

Создадим layout с именем «fragment_settings» и добавим следующий код:

Создадим элемент для списка. Добавим файл «item_genre» в папку layout и напишем следующий код:

Посмотрим на результат:

Tools context android что это. image loader. Tools context android что это фото. Tools context android что это-image loader. картинка Tools context android что это. картинка image loader

Тестирование дизайна

Посмотрим как часто перерисовывается один и тот же участок экрана, то есть выполняется лишняя работа.

Tools context android что это. image loader. Tools context android что это фото. Tools context android что это-image loader. картинка Tools context android что это. картинка image loader

Tools context android что это. image loader. Tools context android что это фото. Tools context android что это-image loader. картинка Tools context android что это. картинка image loader

Цвет голубой — перерисовывается один раз. Хорошо.
Цвет зеленый — перерисовывается два раза. Требуется оптимизация.
Цвет светло-красный — перерисовывается три раз. Очень плохо.
Цвет красный — перерисовывается больше 4 раз. Что-то пошло не так.
А если ничем не закрашено, значит участок не перерисовывается. Отличная работа.

Почему на втором скриншоте все красное? К каждому Layout, RecyclerView и CardView добавили белый фон, из-за этого произошло наложение слоев друг на друга. В описанном выше дизайне этого нет, пример лишь демонстрирует неудачное применение стилизации.

На первом скриншоте использовали только один фон на LinearLayout для фрагмента Home, перерисовку которого отменили программно, использовав следующий метод:

Посмотрим сколько занимает времени отрисовка кадров.

Tools context android что это. image loader. Tools context android что это фото. Tools context android что это-image loader. картинка Tools context android что это. картинка image loader

Tools context android что это. image loader. Tools context android что это фото. Tools context android что это-image loader. картинка Tools context android что это. картинка image loader

Голубой цвет отвечает за время, используемое на создание и обновление View.
Фиолетовая часть представляет собой время, затраченное на передачу ресурсов рендеринга потока.
Красный цвет представляет собой время для отрисовки.
Оранжевый цвет показывает, сколько времени понадобилось процессору для ожидания, когда GPU завершит свою работу. Он и является источником проблем при больших величинах. — Александр Климов

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

Заключение

В следующей статье рассмотрим работу с сервером, а пока автор ее пишет, Вы можете оценить текущий дизайн в опросе ниже.

Если какие-то моменты остались непонятны, задавайте вопросы в комментариях.

Если Вы считаете, что дизайн (XML) можно упростить или сделать лучше, просьба написать об этом.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *