Mejor respuesta
Personalmente, mi teclado favorito en el sistema Android es el teclado emoji gratuito.
Funciones del teclado emoji
Respuesta inteligente
Predicción de la siguiente palabra, predicción de emoji y predicción de caras de texto , incluidos emoticonos de texto feliz, cara de bostezo y cara de guiño.
Temas gratuitos personalizados
Una amplia colección de temas de teclado gratuitos. Siempre habrá uno para ti en nuestro centro de temas.
Crea tus propios temas
Prueba y personaliza tus propios temas, p. Ej. cambiar fondos y fondos de pantalla con sus propias fotos, cambiar fuentes, música (sonido), efectos dinámicos y el color de los teclados.
Escritura multilingüe
El teclado Emoji para Android admite más de 150 idiomas
Responder
1. Integración simple
A continuación se muestra la sintaxis de una integración simple para el teclado Emojis. El constructor EmojiIconActions acepta cuatro parámetros, Context , RootView , EmojiconEditText y ImageView . Por lo general, pasar el diseño principal como RootView es la mejor opción para mostrar el teclado Emojis sobre todas las vistas. El EmojiconEditText es un EditText con más atributos personalizados para habilitar la representación de emojis. Y el último parámetro que usará ImageView para cambiar entre el teclado normal y el teclado emojis.
Para mostrar emojis en TextView usaremos EmojiconTextView que también es un TextView con más atributos personalizados para habilitar la representación de emojis
EmojIconActions emojIcon= new
EmojIconActions(this, rootView, emojiconEditText,
emojiImageView);
emojIcon.ShowEmojIcon();
Si quieres usarlo en formato xml, usaremos EmojiconEditText en lugar del EditText .
android:id="@+id/emojicon\_edit\_text"
android:layout\_width="match\_parent"
android:layout\_height="wrap\_content"
emojicon:emojiconSize="28sp"
/>
Y EmojiconTextView en lugar de TextView
android:id="@+id/emojicon\_text\_view"
android:layout\_width="wrap\_content"
android:layout\_height="wrap\_content"
emojicon:emojiconSize="28sp"/>
2. Cambiar el icono de alternancia predeterminado
Para cambiar entre el teclado normal y el teclado emojis, puede llamar al método setIconsIds () que toma dos parámetros, ID del icono del teclado y ID del icono sonriente .
emojIcon.setIconsIds(R.drawable.ic\_action\_keyboard,R.drawable.smiley);
3. El uso de emojis predeterminados del dispositivo
SuperNove-Emoji le permite usar emojis de dispositivo de una manera sencilla, debe establecer el valor booleano de setUseSystemEmoji ( ) y setUseSystemDefault () métodos a TRUE en cada EmojiconTextView y EmojiconEditText que utiliza para mostrar los emojis.
emojIcon.setUseSystemEmoji(true);
textView.setUseSystemDefault(true);
emojiconEditText.setUseSystemDefault(true);
Atributo Xml:
emojicon:emojiconUseSystemDefault="true"
4. Cambiar el tamaño de los emojis
Para cambiar el tamaño de los emojis, debe cambiar el tamaño del texto estableciendo el valor de setEmojiconSize () método.
textView.setEmojiconSize(30);
Código XML
emojicon:emojiconSize="28sp"
5. Detectar cuando el teclado se abre o se cierra
SuperNova-Emoji te permite detectar cuando el usuario abre el teclado o lo cierra para realizar algunas acciones si es necesario, como mostrar algunas vistas cuando el teclado se abre y ocultarlo cuando el teclado se cerró. Utilice el siguiente bloque de código para lograr esto.
emojIcon.setKeyboardListener(new
EmojIconActions.KeyboardListener() {
@Override
public
void
onKeyboardOpen() {
Log.i("Keyboard","open");
}
@Override
public
void
onKeyboardClose() {
Log.i("Keyboard","close");
}
});
6.Cambiar los colores del teclado Emoji para que coincidan con el tema de su aplicación
Puede configurar tres colores para el teclado emojis agregando tres parámetros al constructor en el que se presionan los iconos de pestañas color, color de pestañas y fondo color. Usaremos el mismo constructor anterior con el valor de los colores.
EmojIconActions emojIcon= new
EmojIconActions(this, rootView, emojiconEditText, emojiImageView,
"#F44336","#e8e8e8","#f4f4f4");
emojIcon.ShowEmojIcon();
7. Creación de una aplicación de muestra
Ahora crearemos una aplicación sencilla que integre los emojis para comprenderla bien en una aplicación real.
1 . En Android Studio, vaya a Archivo ⇒ Nuevo proyecto y complete todos los detalles necesarios para crear un nuevo proyecto.
2 . Abra build.gradle y agregue la biblioteca de emoji de supernova. También debe agregar su repositorio 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 el archivo de diseño de su actividad principal activity\_main.xml y agregue el siguiente código. Aquí puede ver que agregué el emojiconEditText , emojiconTextView y el 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 . Ahora abra MainActivity.java y realice los cambios que se mencionan a continuación. Esta actividad muestra los diferentes escenarios de implementación de SuperNova-Emoji como se explicó anteriormente.
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);
}
});
}
}
Ejecutar y probar la aplicación.