Как интегрировать эмодзи в приложение для Android?
Смайлы, безусловно, делают приложение более интересным и увлекательным для взаимодействия. В этой статье давайте узнаем, как добавить эмодзи в наше собственное приложение для Android, создав простое приложение, которое выглядит как приложение для обмена сообщениями.
Зачем нам эмодзи?
- Это делает приложение более удобным и увлекательным.
- Если функции приложения используются для построения коммуникации, смайлы, безусловно, помогают выразить чувства пользователя.
- Его можно использовать для запроса отзыва о приложении у пользователя.
Подход
Шаг 1. Создайте новый проект Android Studio
Чтобы создать новый проект в Android Studio, обратитесь к разделу «Как создать / запустить новый проект в Android Studio». Обратите внимание, что выберите Java в качестве языка программирования.
Шаг 2. Добавьте следующую зависимость в build.gradle (: app)
Чтобы использовать смайлики в приложении, добавьте его зависимость в файл build.gradle (: app). Добавьте любую из трех зависимостей:
implementation ‘com.vanniktech:emoji-google:0.6.0’
implementation ‘com.vanniktech:emoji-ios:0.6.0’
implementation ‘com.vanniktech:emoji-twitter:0.6.0’
Каждая зависимость обозначает набор эмодзи, который мы импортируем. То есть либо из ios , либо из Google , либо из Twitter .
Шаг 3. Работа с файлом activity_main.xml
В этом примере сделайте приложение похожим на приложение для чата. Для этого используйте две кнопки. Один для добавления смайлов и один для отправки сообщения. Добавьте также EditText, в который пользователь будет вводить сообщение. Вот как выглядит activity_main.xml:
activity_main.xml
<? xml version = "1.0" encoding = "utf-8" ?> < androidx.constraintlayout.widget.ConstraintLayout android:id = "@+id/rootView" android:layout_width = "match_parent" android:layout_height = "match_parent" android:background = "#43a047" android:padding = "8dp" tools:context = ".MainActivity" > < LinearLayout android:id = "@+id/llTextViews" android:layout_width = "match_parent" android:layout_height = "0dp" android:orientation = "vertical" app:layout_constraintBottom_toTopOf = "@id/etEmoji" app:layout_constraintTop_toTopOf = "parent" app:layout_constraintStart_toStartOf = "parent" app:layout_constraintEnd_toEndOf = "parent" > </ LinearLayout > < com.vanniktech.emoji.EmojiEditText android:id = "@+id/etEmoji" android:layout_width = "0dp" android:layout_height = "wrap_content" android:hint = "Say something to GeeksForGeeks..." app:emojiSize = "30sp" android:textColor = "@android:color/white" app:layout_constraintBottom_toBottomOf = "parent" app:layout_constraintEnd_toStartOf = "@id/btnEmojis" app:layout_constraintStart_toStartOf = "parent" /> < Button android:id = "@+id/btnEmojis" android:layout_width = "wrap_content" android:layout_height = "wrap_content" android:text = "Emojis" app:layout_constraintEnd_toStartOf = "@id/btnSend" app:layout_constraintTop_toTopOf = "@id/etEmoji" app:layout_constraintBottom_toBottomOf = "@id/etEmoji" /> < Button android:id = "@+id/btnSend" android:layout_width = "wrap_content" android:layout_height = "wrap_content" android:text = "Send" app:layout_constraintEnd_toEndOf = "parent" app:layout_constraintTop_toTopOf = "@id/etEmoji" app:layout_constraintBottom_toBottomOf = "@id/etEmoji" /> </ androidx.constraintlayout.widget.ConstraintLayout > |
Шаг 4. Создайте файл макета с именем text_view_emoji.xml
Создайте макет, чтобы определить, как должны выглядеть смайлы. Его основная цель - определить размер смайлика. Он также будет отображать сообщения, которые мы отправляем. Создайте новый макет, щелкнув: app -> res -> layout (щелкните правой кнопкой мыши) -> New -> Layout Resource File.
Назовите это как text_view_emoji . Вот как выглядит text_view_emoji.xml:
text_view_emoji.xml
<? xml version = "1.0" encoding = "utf-8" ?> < com.vanniktech.emoji.EmojiTextView android:layout_width = "wrap_content" android:layout_height = "wrap_content" android:layout_marginBottom = "16dp" app:emojiSize = "30sp" android:textSize = "30sp" android:textColor = "@android:color/white" /> |
Шаг 5. Создайте класс под названием EmojiApplication
В зависимости от того, какой набор смайлов хочет иметь пользователь, настройте здесь соответствующее предоставление. Настроив EmojiManager здесь, убедитесь, что пользователь может использовать их в любом месте приложения. Чтобы создать новый класс, щелкните: Файл -> Новый -> Класс Java .
Назовите это EmojiApplication . Вот как выглядит EmojiApplication.java:
EmojiApplication.java
import android.app.Application; import com.vanniktech.emoji.EmojiManager; import com.vanniktech.emoji.google.GoogleEmojiProvider; public class EmojiApplication extends Application { @Override public void onCreate() { super .onCreate(); EmojiManager.install( new GoogleEmojiProvider()); } } |
Примечание. Не забудьте добавить этот новый класс в файл AndroidManifest.xml. Вот как выглядит AndroidManifest.xml после добавления:
AndroidManifest.xml
package = "com.example.emojigfg" > < application android:name = ".EmojiApplication" android:allowBackup = "true" android:icon = "@mipmap/ic_launcher" android:label = "@string/app_name" android:roundIcon = "@mipmap/ic_launcher_round" android:supportsRtl = "true" android:theme = "@style/AppTheme" > < activity android:name = ".MainActivity" > < intent-filter > < action android:name = "android.intent.action.MAIN" /> < category android:name = "android.intent.category.LAUNCHER" /> </ intent-filter > </ activity > </ application > </ manifest > |
Шаг 6: Работа с файлом MainActivity.java
Здесь напишите функцию для расширения EmojiTextView . LayoutInfalter используется для преобразования View или ViewGroup написано в XML для представления на Java, которое можно использовать в коде. Также установите здесь функцию onCreate (). После всех этих изменений MainActivity.java выглядит так:
MainActivity.java
import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.LinearLayout; import com.vanniktech.emoji.EmojiPopup; import com.vanniktech.emoji.EmojiTextView; public class MainActivity extends AppCompatActivity { EditText etEmoji; LinearLayout llTextViews; @Override protected void onCreate(Bundle savedInstanceState) { super .onCreate(savedInstanceState); setContentView(R.layout.activity_main); etEmoji=findViewById(R.id.etEmoji); llTextViews=findViewById(R.id.llTextViews); final EmojiPopup popup = EmojiPopup.Builder .fromRootView(findViewById(R.id.rootView)).build(etEmoji); Button btnEmojis=findViewById(R.id.btnEmojis); btnEmojis.setOnClickListener( new View.OnClickListener() { @Override public void onClick(View view) { popup.toggle(); } }); Button btnSend=findViewById(R.id.btnSend); btnSend.setOnClickListener( new View.OnClickListener() { @Override public void onClick(View view) { llTextViews.addView(getEmojiTextView()); etEmoji.getText().clear(); } }); } private EmojiTextView getEmojiTextView() { EmojiTextView tvEmoji = (EmojiTextView) LayoutInflater .from(getApplicationContext()) .inflate(R.layout.text_view_emoji, llTextViews, false ); tvEmoji.setText(etEmoji.getText().toString()); return tvEmoji; } } |