Melhor resposta
Pessoalmente, meu teclado favorito no sistema Android é o teclado emoji gratuito.
Recursos do teclado emoji
Resposta inteligente
Previsão da palavra seguinte, previsão de emoji e previsão de rostos de texto , incluindo emoticons de texto feliz, bocejo e piscadela.
Temas gratuitos personalizados
Uma vasta coleção de temas de teclado gratuitos. Sempre haverá um para você em nosso centro de temas.
Crie seus próprios temas
Experimente e personalize seus próprios temas, por exemplo, alterar planos de fundo e papéis de parede com suas próprias fotos, alterar fontes, música (som), efeitos dinâmicos e a cor dos teclados.
Digitação multilíngue
O teclado emoji para Android suporta mais de 150 idiomas
Resposta
1. Integração simples
Abaixo está a sintaxe de uma integração simples para o teclado Emojis. O construtor EmojiIconActions aceita quatro parâmetros, Contexto , RootView , EmojiconEditText e ImageView . Normalmente, passar o layout pai como RootView é a melhor opção para mostrar o teclado Emojis acima de todas as visualizações. O EmojiconEditText é um EditText com mais atributos personalizados para ativar a renderização de emojis. E o último parâmetro que ImageView será usado para alternar entre o teclado normal e o teclado de emojis.
Para exibir emojis no TextView, usaremos EmojiconTextView que também é um TextView com mais atributos personalizados para permitir a renderização de emojis
EmojIconActions emojIcon= new
EmojIconActions(this, rootView, emojiconEditText,
emojiImageView);
emojIcon.ShowEmojIcon();
Se desejar usá-lo no layout xml, usaremos EmojiconEditText em vez do EditText .
android:id="@+id/emojicon\_edit\_text"
android:layout\_width="match\_parent"
android:layout\_height="wrap\_content"
emojicon:emojiconSize="28sp"
/>
E EmojiconTextView em vez de TextView
android:id="@+id/emojicon\_text\_view"
android:layout\_width="wrap\_content"
android:layout\_height="wrap\_content"
emojicon:emojiconSize="28sp"/>
2. Alterar o ícone de alternância padrão
Para alternar entre o teclado normal e o teclado emojis, você pode chamar o método setIconsIds () , que leva dois parâmetros, ID do ícone do teclado e ID do ícone sorridente .
emojIcon.setIconsIds(R.drawable.ic\_action\_keyboard,R.drawable.smiley);
3 – Usando emojis padrão do dispositivo
O SuperNove-Emoji permite que você use emojis do dispositivo de forma simples, você precisa definir o valor booleano de setUseSystemEmoji ) e setUseSystemDefault () métodos para TRUE em cada EmojiconTextView e EmojiconEditText que você usa para exibir os emojis.
emojIcon.setUseSystemEmoji(true);
textView.setUseSystemDefault(true);
emojiconEditText.setUseSystemDefault(true);
Atributo Xml:
emojicon:emojiconUseSystemDefault="true"
4. Alterando o tamanho dos emojis
Para alterar o tamanho dos emojis, você deve alterar o tamanho do texto definindo o valor de setEmojiconSize () método span>.
textView.setEmojiconSize(30);
Código XML
emojicon:emojiconSize="28sp"
5. Detectar quando o teclado é aberto ou fechado
O SuperNova-Emoji permite que você detecte quando o usuário abre o teclado ou fecha-o para realizar algumas ações, se necessário, como mostrar algumas visualizações quando o teclado abre e ocultá-lo quando o teclado fechou. Use o bloco de código abaixo para fazer isso.
emojIcon.setKeyboardListener(new
EmojIconActions.KeyboardListener() {
@Override
public
void
onKeyboardOpen() {
Log.i("Keyboard","open");
}
@Override
public
void
onKeyboardClose() {
Log.i("Keyboard","close");
}
});
6.Alterando as cores do teclado emoji para combinar com o tema do seu aplicativo
Você pode definir três cores para o teclado emojis adicionando três parâmetros ao construtor, os quais são pressionados, cores dos ícones das guias, cor das guias e fundo cor. Usaremos o mesmo construtor acima com o valor de cores.
EmojIconActions emojIcon= new
EmojIconActions(this, rootView, emojiconEditText, emojiImageView,
"#F44336","#e8e8e8","#f4f4f4");
emojIcon.ShowEmojIcon();
7. Criando um aplicativo de amostra
Agora, criaremos um aplicativo simples integrando os emojis para obter um bom entendimento dele em um aplicativo real.
1 . No Android Studio, vá para Arquivo ⇒ Novo projeto e preencha todos os detalhes necessários para criar um novo projeto.
2 . Abra build.gradle e adicione a biblioteca de emoji de supernova. Você também precisa adicionar seu repositório maven.
repositories {
maven { url "
https://dl.bintray.com/hani-momanii/maven "}
}
dependencies {
.
.
.
// Supernova Emoji
compile "hani.momanii.supernova\_emoji\_library:supernova-emoji-library:0.0.2"
}
3 . Abra o arquivo de layout de sua atividade principal activity\_main.xml e adicione o código abaixo. Aqui você pode ver que adicionei o emojiconEditText , emojiconTextView e o ImageView .
activity\_main.xml
version="1.0"
encoding="utf-8"?>
xmlns:android="
http://schemas.android.com/apk/res/android "
xmlns:emojicon="
http://schemas.android.com/apk/res-auto "
xmlns:tools="
http://schemas.android.com/tools "
android:id="@+id/root\_view"
android:layout\_width="match\_parent"
android:layout\_height="match\_parent"
android:paddingBottom="@dimen/activity\_vertical\_margin"
android:paddingLeft="@dimen/activity\_horizontal\_margin"
android:paddingRight="@dimen/activity\_horizontal\_margin"
android:paddingTop="@dimen/activity\_vertical\_margin"
tools:context="info.androidhive.emojis.MainActivity">
android:id="@+id/emoji\_btn"
android:layout\_width="40dp"
android:layout\_height="40dp"
android:layout\_alignParentBottom="true"
android:layout\_alignParentLeft="true"
android:padding="4dp"
android:src="@drawable/ic\_insert\_emoticon\_black\_24dp"
/>
android:id="@+id/submit\_btn"
android:layout\_width="40dp"
android:layout\_height="40dp"
android:layout\_alignParentBottom="true"
android:layout\_alignParentRight="true"
android:padding="4dp"
android:src="@android:drawable/ic\_menu\_send"
/>
android:id="@+id/emojicon\_edit\_text"
android:layout\_width="match\_parent"
android:layout\_height="wrap\_content"
android:layout\_alignParentBottom="true"
android:layout\_toLeftOf="@id/submit\_btn"
android:layout\_toRightOf="@id/emoji\_btn"
emojicon:emojiconSize="28sp"
/>
android:id="@+id/use\_system\_default"
android:layout\_width="wrap\_content"
android:layout\_height="wrap\_content"
android:layout\_below="@+id/textView"
android:layout\_centerHorizontal="true"
android:checked="false"
android:text="Use System Default?"
/>
android:id="@+id/textView"
android:layout\_width="wrap\_content"
android:layout\_height="wrap\_content"
android:layout\_centerHorizontal="true"
android:layout\_centerVertical="true"
android:layout\_marginTop="26dp"
android:text="Hello Emojis!"
android:textAppearance="@style/TextAppearance.AppCompat.Large"
android:textColor="#000000"
emojicon:emojiconSize="45sp"
emojicon:emojiconUseSystemDefault="true"
/>
4 . Agora abra MainActivity.java e faça as alterações conforme mencionado abaixo. Esta atividade mostra os diferentes cenários de implementação do SuperNova-Emoji conforme explicado acima.
MainActivity.java
package
info.androidhive.emojis;
import
android.os.Bundle;
import
android.support.v7.app.AppCompatActivity;
import
android.util.Log;
import
android.view.View;
import
android.widget.CheckBox;
import
android.widget.CompoundButton;
import
android.widget.ImageView;
import
hani.momanii.supernova\_emoji\_library.Actions.EmojIconActions;
import
hani.momanii.supernova\_emoji\_library.Helper.EmojiconEditText;
import
hani.momanii.supernova\_emoji\_library.Helper.EmojiconTextView;
public
class
MainActivity extends
AppCompatActivity {
private
static
final
String TAG = MainActivity.class.getSimpleName();
CheckBox mCheckBox;
EmojiconEditText emojiconEditText;
EmojiconTextView textView;
ImageView emojiImageView;
ImageView submitButton;
View rootView;
EmojIconActions emojIcon;
@Override
protected
void
onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity\_main);
rootView = findViewById(R.id.root\_view);
emojiImageView = (ImageView) findViewById(R.id.emoji\_btn);
submitButton = (ImageView) findViewById(R.id.submit\_btn);
mCheckBox = (CheckBox) findViewById(R.id.use\_system\_default);
emojiconEditText = (EmojiconEditText) findViewById(R.id.emojicon\_edit\_text);
textView = (EmojiconTextView) findViewById(R.id.textView);
emojIcon = new
EmojIconActions(this, rootView, emojiconEditText, emojiImageView);
emojIcon.ShowEmojIcon();
emojIcon.setIconsIds(R.drawable.ic\_action\_keyboard, R.drawable.smiley);
emojIcon.setKeyboardListener(new
EmojIconActions.KeyboardListener() {
@Override
public
void
onKeyboardOpen() {
Log.e(TAG, "Keyboard opened!");
}
public
void
onKeyboardClose() {
Log.e(TAG, "Keyboard closed");
}
});
mCheckBox.setOnCheckedChangeListener(new
CompoundButton.OnCheckedChangeListener() {
@Override
public
void
onCheckedChanged(CompoundButton compoundButton, boolean
b) {
emojIcon.setUseSystemEmoji(b);
textView.setUseSystemDefault(b);
}
});
submitButton.setOnClickListener(new
View.OnClickListener() {
@Override
public
void
onClick(View v) {
String newText = emojiconEditText.getText().toString();
textView.setText(newText);
}
});
}
}
Execute e teste o aplicativo.