表情符号无疑会使该应用变得更有趣和有趣。在本文中,让我们学习如何通过创建一个看起来像消息传递应用程序的简单应用程序在我们自己的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文件
在此示例中,使该应用看起来像聊天应用。为此,请使用两个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 。
将此命名为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用于转换View或ViewGroup 以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;
}
}