Разделы

Новости
Статьи
Обзоры

Файловый архив

Форум
Обратная связь
последние не прочитанные новости в RSS RSS



Наш опрос

Интересна ли Вам платформа ANDROID?

Да
Нет
Затрудняюсь ответить

Календарь

«    Январь 2009    »
ПнВтСрЧтПтСбВс
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
 

Архив новостей

Январь 2009 (8)
Декабрь 2008 (29)
Ноябрь 2008 (38)
Октябрь 2008 (48)
Сентябрь 2008 (16)
Август 2008 (29)
Март 2008 (7)
Февраль 2008 (17)

Друзья сайта

»  Все про iPhone
»  Все для Symbian
»  Софт для всех платформ

Счетчики


Яндекс цитирования
Google Android » Статьи » Знакомство с Android

Знакомство с Android

Катигория: Статьи | автор: Shurik | 31 октября 2008 | Просмотров: 165

Часть 1: Простое приложение для Android

 

 
Постановка задачи

Первым нашим приложением для Android будет реализация всем известной игры Life. Местом дейтвия будет прямоугольное клеточное поле, размеры которого запрашиваются у пользователя. Также у пользователя запрашивается начальное количество клеток. Первое поколение расставляется по карте случайным образом. Последующие поколения получаются по следующим правилам:

  • Если у живой клетки меньше двух или больше трёх соседей, то она погибает.
  • Если у пустой клетки ровно три соседки, она оживает.

Все входные параметры должны проверяться на правильность: столбцов должно быть не меньше 5 и не больше 25, строк должно быть не меньше 5 и не больше 35, начальное количество клеток должно быть не больше, чем ячеек на поле. Для реализации поля будет использован класс GridView.

Для разработки была использована среда Eclipse и Android plugin для неё.

Статья будет из трёх частей:

  • Часть 1 - Простое приложение для Android
  • Часть 2 - Переходы между формами
  • Часть 3 - Использование диалогов
  • Часть 4 - Использование GridView

Итак, начнём.

В этой части

Мы создадим проект, рассмотрим его структуру и напишем простое приложение, состоящее из одной формы. На форме будет интерфейс для ввода данных и кнопка Run.

Создание и обзор проекта

На установке Android SDK и плагина для Eclipse останавливаться не будем, т.к. это достаточно подробно описано в официальном мануале. Создаем в Eclipse новый Android Project:

 

После нажатия на кнопку Finish создастся новый проект с такой структурой файлов:

 

Рассмотрим эту структуру внимательнее.

/res/drawable

Сюда помещаются все графические файлы, используемые в приложении. На данный момент там есть только файл icon.png - главная иконка приложения.

/res/layout

В эту папку помещаются файлы, в которых в формате XML описывается внешний вид форм, расположение контролов и т.д. (как dfm-ки в Дельфи). Плагин даже создал разметку для нашей единственной формы и назвал её main.xml. Позже мы рассмотрим ее подробнее.

/res/values

В этой папке хранятся общие константы для всего приложения, как то: текст, используемый элементами управления, цвета, стили и т.д.. Например, если мы хотим вывести "Hello World" в TextView, можно это сделать явно в разметке, как мы всю жизнь делали в тех же dfm-ках или aspx; либо создать в strings.xml константу hello со значением "Hello World", после чего пойти обратно в разметку и в атрибутах этого TextView прописать android:text="@string/hello".

AndroidManifest.xml

В этом файле перечисляются общие свойства проекта (версия, package и прочее), а также все формы (Activities), входящие в проект.

R.java

Это такой специальный сгенерированный класс, посредством которого осуществляется доступ к ресурсам приложения (т.е. ко всему тому, что есть в папке res). Например, R.string.hello возвращает константу с именем hello из strings.xml.

StartScreen.java

Это нам плагин сгенерировал класс для главной (и пока что единственной) формы приложения. Там пока содержится единственный обработчик onCreate, и написано там только setContentView(R.layout.main);. С помощью этой строчки к данной форме привязывается разметка, описанная в файле /res/layout/main.xml

Разметка формы (Layout)

Элементы управления в Android называются Views и наследуются от класса View или ViewGroup. Класс ViewGroup также унаследован от View, но его отличие в том, что в него могут быть вложены другие View или ViewGroup.

 

Плагин создал простейшую разметку для нашей единственной формы (main.xml):

<</span>?xml version="1.0" encoding="utf-8"?>  xmlns:android="http://schemas.android.com/apk/res/android"   android:orientation="vertical"   android:layout_width="fill_parent"   android:layout_height="fill_parent"           android:layout_width="fill_parent"     android:layout_height="wrap_content"     android:text="@string/hello"   /> 

Вначале задаётся Layout, т.е. правило, согласно которому элементы управления следуют друг за другом. LinearLayout значит, что они идут друг за другом сверху вниз (android:orientation="vertical"). Бывают и другие Layout-ы: TableLayout, с помощью которого можно выстроить контролы в таблицу; FrameLayout, который ставит контролы один на другой; и т.д.

Мы воспользуемся TableLayout

Сделаем вот такую разметку:

<</span>?xml version="1.0" encoding="utf-8"?>  xmlns:android="http://schemas.android.com/apk/res/android"   android:layout_width="fill_parent"   android:layout_height="fill_parent"   android:stretchColumns="1"   android:padding="10dip"       android:paddingBottom="5dip"            android:text="@string/rows_title"       android:paddingRight="10dip"       android:gravity="right"       android:textStyle="bold"     />            android:id="@+id/RowsEditor"       android:text="35"       android:singleLine="true"       android:numeric="integer"     />       android:paddingBottom="5dip"            android:text="@string/columns_title"       android:paddingRight="10dip"       android:gravity="right"       android:textStyle="bold"     />            android:id="@+id/ColumnsEditor"       android:text="25"       android:singleLine="true"       android:numeric="integer"     />       android:paddingBottom="5dip"            android:text="@string/cells_title"       android:paddingRight="10dip"       android:gravity="right"       android:textStyle="bold"     />            android:id="@+id/CellsEditor"       android:text="100"       android:singleLine="true"       android:numeric="integer"     />                  android:id="@+id/RunButton"       android:text="@string/run_title"       android:textStyle="bold"       android:layout_span="2"       android:layout_width="wrap_content"       android:layout_height="wrap_content"     />    
В файл strings.xml при этом нужно добавить следующие строки:
name="run_title"Run!string  name="columns_title"Columns:string  name="rows_title"Rows:string  name="cells_title"Cells:string

Форма при этом будет выглядеть так:

 

Рассмотрим некоторые атрибуты, использованные в разметке

android:id

Идентификатор элемента. Если он указан, то в дальнейшем его можно найти на форме с помощью метода findViewById(id). Для контролов, которых мы не планируем в дальнейшем трогать (например, для заголовков), можно это свойство и вовсе не указывать. Идентификаторы можно складывать в файл ids.xml, но вместо этого обычно применяется синтаксис @+id/View1. Это означает, что идентификатор View1 добавляется в константы прямо на ходу. В R.java соответствующие поля также добавляются автоматически.

android:layout_width и android:layout_heigth

Свойства layout_width и layout_heigth обозначают, какую часть родительского контрола будет занимать данный элемент управления: всю (fill_parent) или ровно столько, сколько требуется (wrap_content).

android:numeric

Это атрибут EditText. Значение integer значит, что в это поле можно вводить только целые положительные числа.

android:gravity

Устанавливает выравнивание текста в данном элементе управления.

Заключение

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

Страница 1 из 3 | Следующая страница
Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь. Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.
 (голосов: 0)

Комментарии (0)  Распечатать

Обсудить на форуме

Добавление комментария

Ваше Имя:
Ваш E-Mail:

Код:
Включите эту картинку для отображения кода безопасности
обновить код
Введите код:

Название темы Пользователь
Google предлагает для разработ ...Shurik
HTC представила второй гуглофо ...Shurik
Владельцев G1 в Великобритании ...Shurik
Роуминг заблокирован в моделях ...Shurik
Nokia смотрит в сторону LinuxShurik
Инсайдерская информация о новы ...Shurik
Google продолжает бороться за ...Shurik
G1 от T-Mobile подвергся атака ...Shurik
Kogan анонсировала Android-тел ...Shurik
Новый сервис AdWords теперь до ...Shurik

Популярные статьи

» Тестирование Opera 4.2 Beta
» Где можно найти T-Mobile G1 за 125 долларов?
» ShopSavvy не работает на разблокированных G1
» Роуминг заблокирован в моделях G1 в Великобритании
» OpenMoko Android будет с экранной клавиатурой
» HTC представила второй гуглофон – G2
» Greasemonkey для Android
» Nokia смотрит в сторону Linux
» Владельцев G1 в Великобритании ожидает снижение ежемеся ...
» Google предлагает для разработчиков незалоченный G1

Новости сети

Популярные файлы