Подключение библиотеки Supernova Emoji
Для реализации emoji необходимо подключить библиотеку Supernova Emoji. Ссылка на библиотеку приведена в описании.
Инструкция по подключению
В файле build.gradle (модуль app) добавьте строку:
implementation '...' //Название библиотеки
Нажмите кнопку «Sync» для синхронизации проекта. (Предполагается, что подключение зависимостей в build.gradle описано в предыдущем уроке).
Изменение дизайна Activity Main
Внесите изменения в дизайн activity main:
- Удалите элементы TextInputLayout и AppCompatActionButton.
- Добавьте ImageView (кнопка вызова клавиатуры emoji):
- Ширина и высота: 40 dp.
- id: emojiButton
- padding: 4 dp
- layout_alignParentStart: true
- layout_alignParentBottom: true
- Загрузите картинку (например, смайлик) в папку drawable и установите её через атрибут android:src. Рекомендуется использовать ресурс IconFinder.com.
- Добавьте ImageView (кнопка «Отправить», submitButton):
- Используйте картинку ic_menu_send из ресурсов Android Studio (android:src="@android:drawable/ic_menu_send").
- Добавьте EditText (textField):
- id: textField
- layout_alignParentBottom: true
- Высота: wrap_content
- Размер текста: 28 sp
- Расположите между кнопками emojiButton и submitButton с помощью атрибутов layout_toRightOf и layout_toLeftOf. Используйте атрибуты android_layout_toRightOf="@id/submitButton" и android_layout_toLeftOf="@id/emojiButton" для предотвращения наложения.
Реализация функциональности
- Удалите неиспользуемые переменные и обработчики событий.
- Создайте переменные для доступа к элементам UI: emoticonEditText, emojiButton, submitButton и emojiIconActions (emojiIconActions — объект класса EmojiIconActions).
- Найдите элементы UI с помощью findViewById:
submitButton = findViewById(R.id.submitButton);
emojiButton = findViewById(R.id.emojiButton);
emoticonEditText = findViewById(R.id.textField);
- Создайте объект emojiIconActions:
emojiIconActions = new EmojiIconActions(this, this, emoticonEditText, emojiButton);
- Добавьте обработчик клика для submitButton:
submitButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// Код для отправки сообщения в Firebase Database (из предыдущих уроков)
// ...
emoticonEditText.setText(""); // Очистка текстового поля
}
});
- Вызовите emojiIconActions.showEmojiKeyboard();
Приложение позволяет отправлять сообщения с emoji. Обновлён дизайн, добавлена функциональность вызова emoji-клавиатуры и отправки сообщений с emoji в Firebase Database. Приложение поддерживает авторизацию, добавление и синхронизацию сообщений.