📜  如何在 Android 应用程序中集成表情符号?

📅  最后修改于: 2021-10-28 03:00:14             🧑  作者: Mango

表情符号无疑使应用程序更有趣,互动起来更有趣。在本文中,让我们通过创建一个看起来像消息应用程序的简单应用程序来学习如何在我们自己的 Android 应用程序中添加表情符号。

为什么我们需要表情符号?

  • 它使应用程序看起来更加用户友好和有趣。
  • 如果应用程序功能用于建立沟通,表情符号肯定有助于表达用户的感受。
  • 它可用于向用户询问应用程序的反馈。

方法

第 1 步:创建一个新的 Android Studio 项目

要在 Android Studio 中创建新项目,请参阅如何在 Android Studio中创建/启动新项目请注意,选择Java作为编程语言。

第 2 步:在 build.gradle(:app) 中添加以下依赖项

为了在应用程序中使用表情符号,请将其依赖项添加到 build.gradle(:app) 文件。添加三个依赖项中的任何一个

每个依赖项都表示我们正在导入的表情符号集。也就是说,要么来自ios ,要么来自Google ,要么来自Twitter

第 3 步:使用 activity_main.xml 文件

在这个例子中,让应用看起来像一个聊天应用。为此,请使用两个Buttons 。一个用于添加表情符号,一个用于发送消息。还添加一个EditText ,用户将在其中键入消息。这是activity_main.xml 的样子:

activity_main.xml


  
    
    
  
    
  
    


text_view_emoji.xml


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

  
    
        
            
                
  
                
            
        
    
  


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;
    }
}


第 4 步:创建一个名为 text_view_emoji.xml 的布局文件

创建一个布局来定义表情符号的外观。它的主要目的是定义表情符号的大小。它还将显示我们发送的消息。通过单击创建新布局: app -> res -> layout (右键单击)-> New -> Layout Resource File。

新版面

将其命名为text_view_emoji 这是text_view_emoji.xml 的样子:

text_view_emoji.xml



第 5 步:创建一个名为 EmojiApplication 的类

根据用户想要的表情符号集,在此处设置相应的提供。通过在此处设置EmojiManager ,确保用户可以在应用程序的任何位置使用它们。要创建新类,请单击: File -> New -> Java Class

新班级

将其命名为EmojiApplication 这就是EmojiApplication 的方式。 Java看起来像:

表情应用。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


  
    
        
            
                
  
                
            
        
    
  

第 6 步:使用 MainActivity。 Java文件

在这里,编写一个函数来膨胀EmojiTextViewLayoutInfalter用于转换ViewViewGroup 用 XML 编写到Java中的视图,可以在代码中使用。另外,在此处设置onCreate()函数。在所有这些更改之后, MainActivity就是这样。 Java看起来像:

主要活动。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;
    }
}

输出:在模拟器上运行

想要一个更快节奏和更具竞争力的环境来学习 Android 的基础知识吗?
单击此处前往由我们的专家精心策划的指南,旨在让您立即做好行业准备!