Najlepsza odpowiedź
Osobiście moją ulubioną klawiaturą w systemie Android jest bezpłatna klawiatura emoji.
Funkcje klawiatury z emotikonami
Inteligentna odpowiedź
Przewidywanie następnego słowa, przewidywanie emotikonów i przewidywanie twarzy tekstowych , w tym szczęśliwe emotikony tekstowe, ziewającą buźkę i mrugającą buźkę.
Spersonalizowane darmowe motywy
Szeroka kolekcja bezpłatnych motywów klawiatury. W naszym centrum motywów zawsze będzie taki dla Ciebie.
Twórz własne motywy
Wypróbuj i dostosuj własne motywy, np. zmiana tła i tapety z własnymi zdjęciami, zmiana czcionek, muzyki (dźwięku), efektów dynamicznych i koloru klawiatur.
Pisanie w wielu językach
Klawiatura emoji dla Androida obsługuje ponad 150 języków
Odpowiedź
1. Prosta integracja
Poniżej znajduje się składnia prostej integracji dla Klawiatury Emojis. Konstruktor EmojiIconActions akceptuje cztery parametry, Context , RootView , EmojiconEditText i ImageView . Zwykle przekazywanie układu nadrzędnego jako RootView jest najlepszą opcją, aby wyświetlić klawiaturę Emojis ponad wszystkimi widokami. EmojiconEditText to EditText z większą liczbą niestandardowych atrybutów umożliwiających renderowanie emotikonów. I ostatni parametr, którego ImageView użyje do przełączenia między normalną klawiaturą a klawiaturą emotikonów.
Aby wyświetlić emotikony w TextView, użyjemy EmojiconTextView który jest również TextView z większą liczbą niestandardowych atrybutów umożliwiających renderowanie emotikonów
EmojIconActions emojIcon= new
EmojIconActions(this, rootView, emojiconEditText,
emojiImageView);
emojIcon.ShowEmojIcon();
Jeśli chcesz użyć go w układzie XML, użyjemy EmojiconEditText zamiast normalnego EditText .
android:id="@+id/emojicon\_edit\_text"
android:layout\_width="match\_parent"
android:layout\_height="wrap\_content"
emojicon:emojiconSize="28sp"
/>
I EmojiconTextView zamiast TextView
android:id="@+id/emojicon\_text\_view"
android:layout\_width="wrap\_content"
android:layout\_height="wrap\_content"
emojicon:emojiconSize="28sp"/>
2. Zmień domyślną ikonę przełączania
Aby przełączyć się między zwykłą klawiaturą a klawiaturą emoji, możesz wywołać metodę setIconsIds () , która wymaga dwa parametry, identyfikator ikony klawiatury i identyfikator ikony uśmiechniętej ikony .
emojIcon.setIconsIds(R.drawable.ic\_action\_keyboard,R.drawable.smiley);
3. Korzystanie z domyślnych emotikonów urządzenia
SuperNove-Emoji pozwala na używanie emotikonów urządzenia w prosty sposób, musisz ustawić wartość logiczną setUseSystemEmoji ( ) i setUseSystemDefault () na TRUE w każdym EmojiconTextView i EmojiconEditText , których używasz do wyświetlania emotikonów.
emojIcon.setUseSystemEmoji(true);
textView.setUseSystemDefault(true);
emojiconEditText.setUseSystemDefault(true);
Atrybut XML:
emojicon:emojiconUseSystemDefault="true"
4. Zmiana rozmiaru emotikonów
Aby zmienić rozmiar emotikonów, musisz zmienić rozmiar tekstu, ustawiając wartość setEmojiconSize () .
textView.setEmojiconSize(30);
Kod XML
emojicon:emojiconSize="28sp"
5. Wykryj, kiedy klawiatura jest otwarta lub zamknięta
SuperNova-Emoji pozwala wykryć, kiedy użytkownik otwiera klawiaturę lub zamyka ją, aby w razie potrzeby wykonać pewne czynności, takie jak wyświetlenie niektórych widoków, gdy klawiatura jest otwarta i ukryta kiedy klawiatura jest zamknięta. Aby to osiągnąć, użyj poniższego bloku kodu.
emojIcon.setKeyboardListener(new
EmojIconActions.KeyboardListener() {
@Override
public
void
onKeyboardOpen() {
Log.i("Keyboard","open");
}
@Override
public
void
onKeyboardClose() {
Log.i("Keyboard","close");
}
});
6.Zmiana kolorów klawiatury Emoji w celu dopasowania do motywu aplikacji
Możesz ustawić trzy kolory klawiatury emoji, dodając trzy parametry do konstruktora, w którym są wciśnięte, kolor ikon, kolor kart i tło kolor. Użyjemy tego samego powyższego konstruktora z wartością kolorów.
EmojIconActions emojIcon= new
EmojIconActions(this, rootView, emojiconEditText, emojiImageView,
"#F44336","#e8e8e8","#f4f4f4");
emojIcon.ShowEmojIcon();
7. Tworzenie przykładowej aplikacji
Teraz utworzymy prostą aplikację integrującą emotikony, aby dobrze ją zrozumieć w prawdziwej aplikacji.
1 . W Android Studio przejdź do Plik ⇒ Nowy projekt i wypełnij wszystkie szczegóły wymagane do utworzenia nowego projektu.
2 . Otwórz build.gradle i dodaj bibliotekę emoji supernova. Musisz również dodać jego repozytorium 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 . Otwórz plik układu swojej głównej aktywności activity\_main.xml i dodaj poniższy kod. Tutaj widać, że dodałem emojiconEditText , emojiconTextView i 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 . Teraz otwórz MainActivity.java i wprowadź zmiany, jak wspomniano poniżej. To ćwiczenie pokazuje różne scenariusze implementacji SuperNova-Emoji, jak wyjaśniono powyżej.
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);
}
});
}
}
Uruchom i przetestuj aplikację.