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

📅  最后修改于: 2021-05-10 13:38:59             🧑  作者: Mango

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

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

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

方法

步骤1:建立新的Android Studio专案

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

步骤2:将以下依赖项添加到build.gradle(:app)

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

每个依赖项都表示我们要导入的表情符号集。也就是说,可以通过iosGoogleTwitter获得

步骤3:使用activity_main.xml文件

在此示例中,使该应用看起来像聊天应用。为此,请使用两个Button 。一种添加表情符号,另一种发送消息。还添加一个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- >布局(右键单击)->新建->布局资源文件。

新版面

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

text_view_emoji.xml



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

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

newClass

将此命名为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


  
    
        
            
                
  
                
            
        
    
  

步骤6:使用MainActivity。 Java文件

在这里,写一个函数膨胀EmojiTextView。 LayoutInfalter用于转换ViewViewGroup 以XML格式写入Java的View中,该视图可以在代码中使用。另外,在此处设置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的基础知识吗?
单击此处,前往由我们的专家精心策划的指南,以使您立即做好行业准备!