32428ca9

Экраны в App Inventor.

Экраны App InventorЭкран приложения – это наше всё, ибо нет экрана – нет и приложения.
Поэтому экраны App Inventor удостоились отдельной статьи.
Немного о свойствах экранов.
Во-первых, их может быть больше одного, то есть много. Можно, конечно, создать сложное приложение с использованием одного экрана, но это сильно усложнит процесс создания. Представьте себе, что ваше приложение (достаточно простое) состоит из двух этапов – сначала ввод данных в 10 полях, а потом – анимация на весь экран.

Если всё это делать на одном экране, то вы замучаетесь скрывать и снова показывать различные компоненты, например, компоненты для ввода текста. А если делать на двух экранах, то всё проще – на одном ввели данные, возможно их обсчитали, а на другом уже используем в нашей анимации.
Чтобы выбирать, добавлять или удалять экраны используем кнопки:

Выбор экрана, добавление и удаление

Первая кнопка представляет собой выпадающий список существующих экранов. Вторая, “Add Screen…”, позволяет добавлять экраны. Третья, “Remove Screen”, удаляет текущий экран. Причём удалить самый первый экран – “Screen1”, нельзя. Имя экрана задаётся при его создании. Штатными методами App Inventor переименовать уже существующий экран тоже нельзя. Однако есть «нештатные» методы, о которых будет речь ниже.
Свойства экранаВо-вторых, о настройках экрана. Как вы, наверное, уже поняли, основные настройки находятся в области “Properties”.
AboutScreen – содержит описание экрана и, зачастую, всего приложения, если экран один;
AlingHorizontal – расположение элементов на экране по горизонтали: справа, по центру, слева. Так же как в Word;
AlingVertical – тоже самое, только по вертикали;
AppName – название приложения Android. Присутствует только на “Screen1”. Если оставить это поле пустым, то название приложение будет таким же .каки название проекта;
BackgroundColor – цвет фона экрана. Если в качестве фона используете картинку, то ставьте “None”, иначе картинку закроет выбранный цвет.
BackgroundImage – фоновое изображение. Можете подгрузить подходящее по размеру изображение.
CloseScreenAnimation – анимация при закрытии экрана. Можно выбрать из нескольких вариантов.
Icon – здесь можно установить иконку приложения. Размер изображения для иконки под Androidобычно берется 36х36 или 48х48 пикселей. И формат “.gif”  вполне подойдёт.
OpenScreenAnimation — анимация при открытии экрана.
ScreenOrientation – ориентация экрана. Соответственно, неопределённая, портретная, альбомная, определяемая сенсором-акселерометром и определяемая пользователем.
Scrollable – разрешение или запрет вертикальной прокрутки.
Title – подпись к названию в заголовке.
VersionCode – целое число, которое служит номером очередного apk-пакета для Google Play.
VersionName – номер версии приложения.
Ну, вот, с основными свойствами вроде всё.
Теперь к другим важным моментам.
Очень часто возникает необходимость создать экран с похожим функционалом, а в AI такой возможности не предусмотрено – рисуйте всё заново. В App Inventor, вообще, нет функции создания копии экрана – только создать/удалить. Но есть, есть обходные пути! Экраны App Inventor таки можно дублировать!
Для этого необходимо импортировать проект себе на компьютер. Как это сделать описано в статье «Загрузка приложения на Android-телефон/планшет».
Я покажу на примере приложения “Clock”, создание которого было разобрано здесь.
Итак, мы имеем у себя на компьютере файл проекта приложения с расширением “.aia” – “Clock.aia”.
В первую очередь, необходимо переименовать файл – заменить “.aia” на “.zip”. Да-да, именно так. Превращаем файл в zip-архив и открываем его любым архиватором.
Там мы видим список папок:

Папки в файле .aia

Углубляемся в папку “scr”, то бишь “screen”, и открываем появляющиеся папки до упора, пока не откроем папку с названием нашего проекта, в данном случае “Clock”. Там и лежат файла, где запрограммированы экраны нашего android-приложения. Для каждого экрана по три файла – расширениями “bky”, “scm”, “yail”. Вот их то и копируем в какую-нибудь другую папку на компьютере. Там мы их переименовываем, например, в “Screen2.bky”, “Screen2.scm”, “Screen2.yail”. Дальше копируем полученные файлы обратно в попку “Clock” и запаковываем обратно в zip-архив. Что делать потом, вы, верно, уже догадались: меняем расширение “zip” обратно на “aia” и импортируем проект в App Inventor. Можно перед импортом изменить название, например, на “Clock2”, чтобы не путать с оригиналом.
Кстати, если интересно, то можете поковыряться в этих файлах и что-то поменять.
Теперь, если откроете проект в AI, то у вас будет ещё один экран, полностью дублирующий первый.
Вопрос об обработчиках и свойствах экрана, находящихся в редакторе “Blocks” – вкратце, они находятся в блоках “Screen” и “Control”.  “Control” рассмотрим в соответствующей статье, а здесь о блоке “Screen”.
Для экрана здесь наличествуют следующие обработчики:
BackPressed  — действия приложения при нажатии на Anroid- устройстве кнопки «Вернуться».
ErrorOccurred – действия при возникновении ошибки в приложении (компонент, функция, номер ошибкиr, текстовое сообщение). Этот обработчик стоит применять. Если вы хотите изменить действия при ошибке по умолчанию.
Initialize – действия при инициализации экрана
OtherScreenClosed  — действия на этом экране при закрытии другого и возращении к этому
Событие возникает, когда другой экран был закрыт, а возвращения управления в этом окне.
ScreenOrientationChanged – действия при изменении ориентации экрана.
Здесь же находятся и свойства экрана, повторяющие свойства из “Design”. Их в процессе работы приложения можно менять.
Так же очень актуален вопрос по передаче данных от одного экрана Android-приложения к другому экрану, но об этом в следующей статье.