>■ £■ cache
|
2014-02-22
|
07:10
|
drwxrwx—X
|
|
‘ is databases
|
2014-02-22
|
07:10
|
drwxTwx-*x
|
|
ii myOB
|
20480 2014-02-22
|
07:17
|
-rw-rw—
|
|
Рис. 16.1. Расположение файла базы данных SQLite Обращения к базе данных SQL выполняются посредством запросов, существует три основных вида SQL запросов: DDL, Modification и Query.
DDL запросы. Такие запросы используются для создания таблиц. Каждая таблица характеризуется именем и описанием столбцов, которое содержит имя столбца и тип данных. В файле базы данных может быть несколько таблиц.
Пример запроса для создания таблицы: create Table_Name (
_id integer primary key autoincrement, field_name_1 text, field_name_2 text);
Первый столбец обозначен, как primary key (первичный ключ), т. е. уникальное число, которое однозначно идентифицирует строку. Слово autoincrement указывает, что база данных будет автоматически увеличивать значение ключа при добавлении каждой записи, что и обеспечивает его уникальность. Существует договоренность первый столбец всегда называть _id, это не жесткое требование SQLite, однако может понадобиться при использовании контент-провайдера в Android.
Стоит иметь в виду, что в SQLite, в отличие от многих других баз данных, типы данных столбцов являются лишь подсказкой, т. е. не вызовет никаких нареканий попытка записать строку в столбец, предназначенный для хранения целых чисел или наоборот. Этот факт можно рассматривать, как особенность базы данных, а не как ошибку, на это обращают внимание авторы SQLite.
Modification запросы. Такие запросы используются для добавления, изменения или удаления записей.
Пример запроса на добавление строки: insert into Table_Name values(null, value1, value2);
В этом случае значения разместятся в соответствующие столбцы таблицы, первое значение задается для поля _id и равно null, т. к. SQLite вычисляет значение этого поля самостоятельно.
При добавлении можно указывать столбцы, в которые будут размещаться значения, остальные столбцы заполнятся значениями по
умолчанию, в этом случае можно добавлять элементы в измененном порядке. Пример такого запроса:
insert into Table_Name(field_name_2, field_name_1) values(value2, value1);
Анимация
Android предоставляет мощные API для анимации элементов пользовательского интерфейса и построения 2D и 3D изображений.
Платформа Android предоставляет две системы анимации: анимация свойств, появившаяся в Android 3.0, и анимация компонентов пользовательского интерфейса (наследников класса View). Рассмотрим подробнее обе эти системы.
Анимация свойств (Property Animation). Система анимации свойств позволяет определить анимацию для изменения любого свойства объекта, независимо от того изображается оно на экране или нет. Используя эту систему, можно задать следующие характеристики анимации:
Продолжительность предполагает задание длительности временного промежутка выполнения анимации, по умолчанию это значение равно 300 мс.
Временная интерполяция предполагает вычисление значения свойства в каждый момент времени, как функции от промежутка времени, прошедшего с начала анимации.
Количество повторов и поведение определяет необходимость повторения анимации при достижении конца заданного временного промежутка, а также количество повторов в случае необходимости. Эта же характеристика позволяет задать возможность воспроизведения в обратном порядке, если эта возможность выбрана, то анимация прокручивается вперед- назад заданное число раз.
Группа анимаций позволяет организовать анимации в некоторое множество и задать режим исполнения: одновременно, последовательно непрерывно или с некоторыми задержками.
Частота обновления кадров определяет, как часто будет происходить смена кадров анимации. По умолчанию обновление происходит каждые 10 мс, однако скорость, с которой приложение сможет обновлять кадры, в конечном итоге, зависит от загруженности системы.
Большая часть API системы анимации свойств находится в пакете android.animation. Также можно использовать блоки интерполяции, определенные в пакете android.view.animation.
Класс Animator предоставляет базовую структуру для создания анимации. Напрямую этот класс обычно не используется, так как обеспечивает минимальную функциональность, поэтому чаще всего используются классы-наследники, расширяющие возможности класса Animator. Рассмотрим основные классы, используемые для создания анимации свойств.
ValueAnimator (потомок класса Animator). Этот класс является главным обработчиком распределения времени для анимации свойств, а также рассчитывает значения свойства, предназначенного для анимации. Он обеспечивает всю основную функциональность: рассчитывает значения анимации и содержит распределенные во времени детали каждой анимации; содержит информацию о необходимости повторений анимации; содержит
Достарыңызбен бөлісу: |