Лабораторная работа 6. Всплывающие уведомления / toastnotification
ToastNotification – всплывающее уведомление, которое появляется поверх
приложения и исчезает через некоторое время. Всплывающее уведомление также
может быть создано службой, работающей в фоновом режиме. Обычно
всплывающее уведомление содержит короткий текст уведомляющего характера.
Для создания уведомления необходимо инициализировать объект Toast при
помощи метода makeText(). Для отображения на экране нужно вызвать метод
show().
Toast toast = Toast.makeText(getApplicationContext(),
"Текст уведомления", Toast.LENGTH_SHORT);
toast.show(); У метода makeText() есть три параметра:
контекстприложения;
текстовоесообщение;
продолжительность времени показауведомления.
Константыпродолжительностипоказауведомления
Имеются две константы для указания продолжительности показа
уведомления:
LENGTH_SHORT
–
является константой по умолчанию,
показывает
уведомление в течение двухсекунд;
LENGTH_LONG
–
показывает уведомление в течение
3,5с.
Позиция на экране
По умолчанию место появления всплывающего уведомления – внизу. Для 62
изменения местоположения необходимо вызвать метод setGravity(), который
принимает три параметра:
константа для размещения объекта в пределах контейнера
(Gravity.CENTER, Gravity.TOP и др.);
смещение по осиX;
смещение по осиY.
Пример
Добавляем кнопку, присваиваем атрибуту onClick значение showToast.
Напишем метод showToast.
public void showToast(View view) {
Toast toast = Toast.makeText(getApplicationContext(), "Your
message", Toast.LENGTH_SHORT);
toast.setGravity(Gravity.CENTER, 0, 0);
toast.show(); }
Запустив приложение и нажав на кнопку, получим всплывающее
уведомление по центру экрана, без смещений с указанным нами текстом, через две
секунды после появления уведомление скрывается (рис. 6.1).
Рис. 6.1.
Экран приложения с
ToastNotification
63
Начиная с версии Android 4.4, всплывающие уведомления получили
скругления, с версии Android 5.1 около уведомления отображается логотип
приложения.
Если простого текстового сообщения недостаточно, можно создать
собственный дизайн разметки уведомления. Для получения разметки из XML-
файла и работы с ней в программе используется класс LayoutInflater и его методы –
getLayoutInflater()
или
getSystemService(),
которые
возвращают
объект
LayoutInflater. Затем вызовом метода inflate() получают корневой объект view этой
разметки.
Например,
для
файла
разметки
уведомления
с
именем
notification_layout.xml
и
его
корневого
элемента
c
идентификатором
android:id="@+id/toast_layout" код будет таким:
LayoutInflater inflater = getLayoutInflater();
View
layout
=
inflater.inflate(R.layout.
notification_layout
,
(ViewGroup)
findViewById(R.id.
toast_layout
));
Код notification_layout.xml:
android:id="@+id/toast_layout" android:orientation="vertical"
android:layout_width="match_parent" android:layout_height="match_parent"
android:padding="10dp" android:background="#DAAA">
android:layout_height="190dp" android:layout_marginRight="10dp"
android:background="@drawable/shrek_cat" />
android:layout_width="wrap_content" android:layout_height="match_parent"
android:text="Your message" android:textColor="#FFF777" />
И
следом укажем методом setView() у объекта toast, укажем Viewlayout в
качестве того контейнера, который мы хотим отобразить в всплывающем
уведомлении, и покажем его (рис.6.2):
toast.setView(layout); toast.show();
64
Рис. 6.2.
Экран приложения с
ToastNotification
со своим
Layout
Достарыңызбен бөлісу: |