Migliore risposta
Personalmente, la mia tastiera preferita nel sistema Android è la tastiera emoji gratuita.
Funzionalità della tastiera emoji
Risposta intelligente
Previsione della parola successiva, previsione delle emoji e previsione dei volti di testo , incluse emoticon con testo felice, faccina che sbadiglia e faccina ammiccante.
Temi gratuiti personalizzati
Una vasta collezione di temi gratuiti per tastiera. Ce ne sarà sempre uno per te nel nostro centro temi.
Crea i tuoi temi
Prova a personalizzare i tuoi temi, ad es. cambiare sfondi e sfondi con le tue foto, cambiare i caratteri, la musica (suono), gli effetti dinamici e il colore dei tastierini.
Digitazione multilingue
La tastiera Emoji per Android supporta oltre 150 lingue
Risposta
1. Integrazione semplice
Di seguito è riportata la sintassi di una semplice integrazione per Tastiera Emojis. Il costruttore EmojiIconActions accetta quattro parametri, Contesto , RootView , EmojiconEditText e ImageView . Di solito passare il layout principale come RootView è lopzione migliore per mostrare la tastiera Emojis sopra tutte le visualizzazioni. EmojiconEditText è un EditText con più attributi personalizzati per abilitare il rendering degli emoji. E lultimo parametro verrà utilizzato da ImageView per passare dalla tastiera normale alla tastiera emoji.
Per visualizzare gli emoji in TextView useremo EmojiconTextView che è anche un TextView con più attributi personalizzati per abilitare il rendering degli emoji
EmojIconActions emojIcon= new
EmojIconActions(this, rootView, emojiconEditText,
emojiImageView);
emojIcon.ShowEmojIcon();
Se desideri utilizzarlo nel layout xml, utilizzeremo EmojiconEditText invece del normale Modifica testo .
android:id="@+id/emojicon\_edit\_text"
android:layout\_width="match\_parent"
android:layout\_height="wrap\_content"
emojicon:emojiconSize="28sp"
/>
e EmojiconTextView invece di TextView
android:id="@+id/emojicon\_text\_view"
android:layout\_width="wrap\_content"
android:layout\_height="wrap\_content"
emojicon:emojiconSize="28sp"/>
2. Cambia licona di attivazione / disattivazione predefinita
Per passare dalla tastiera normale alla tastiera emoji, puoi chiamare il metodo setIconsIds () che accetta due parametri, ID icona della tastiera e ID icona smiley .
emojIcon.setIconsIds(R.drawable.ic\_action\_keyboard,R.drawable.smiley);
3. Utilizzando Emoji predefiniti del dispositivo
SuperNove-Emoji ti consente di utilizzare gli emoji del dispositivo in modo semplice, devi impostare il valore booleano di setUseSystemEmoji ( ) e setUseSystemDefault () per TRUE in ogni EmojiconTextView e EmojiconEditText che utilizzi per visualizzare gli emoji.
emojIcon.setUseSystemEmoji(true);
textView.setUseSystemDefault(true);
emojiconEditText.setUseSystemDefault(true);
Attributo Xml:
emojicon:emojiconUseSystemDefault="true"
4. Modifica della dimensione degli emoji
Per cambiare la dimensione degli emoji, devi cambiare la dimensione del testo impostando il valore di setEmojiconSize () .
textView.setEmojiconSize(30);
Codice XML
emojicon:emojiconSize="28sp"
5. Rileva quando la tastiera è aperta o chiusa
SuperNova-Emoji ti consente di rilevare quando lutente apre o chiude la tastiera per eseguire alcune azioni, se necessario, come mostrare alcune visualizzazioni allapertura della tastiera e nasconderla quando la tastiera è chiusa. Utilizza il blocco di codice riportato di seguito per ottenere questo risultato.
emojIcon.setKeyboardListener(new
EmojIconActions.KeyboardListener() {
@Override
public
void
onKeyboardOpen() {
Log.i("Keyboard","open");
}
@Override
public
void
onKeyboardClose() {
Log.i("Keyboard","close");
}
});
6.Modificare i colori della tastiera Emoji per abbinare il tema della tua app
Puoi impostare tre colori per la tastiera emoji aggiungendo tre parametri al costruttore che vengono premuti colore delle icone delle schede, colore delle schede e sfondo colore. Useremo lo stesso modello di cui sopra con il valore dei colori.
EmojIconActions emojIcon= new
EmojIconActions(this, rootView, emojiconEditText, emojiImageView,
"#F44336","#e8e8e8","#f4f4f4");
emojIcon.ShowEmojIcon();
7. Creazione di app di esempio
Ora creeremo una semplice app che integri gli emoji per comprenderla bene in unapp reale.
1 . In Android Studio, vai a File ⇒ Nuovo progetto e inserisci tutti i dettagli richiesti per creare un nuovo progetto.
2 . Apri build.gradle e aggiungi la libreria di emoji di supernova. Devi aggiungere anche il suo repository esperto.
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 . Apri il file di layout della tua attività principale activity\_main.xml e aggiungi il codice sottostante. Qui puoi vedere che ho aggiunto emojiconEditText , emojiconTextView e 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 . Ora apri MainActivity.java e apporta le modifiche come indicato di seguito. Questa attività mostra i diversi scenari di implementazione di SuperNova-Emoji come spiegato sopra.
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);
}
});
}
}
Esegui e prova lapp.