Beste antwoord
Persoonlijk is mijn favoriete toetsenbord in het Android-systeem het gratis emoji-toetsenbord.
Emoji-toetsenbordfuncties
Slim antwoord
Voorspelling van het volgende woord, emoji-voorspelling en voorspelling van tekstgezichten , inclusief vrolijke tekst-emoticons, gaapgezicht en knipooggezicht.
Gepersonaliseerde gratis themas
Een uitgebreide verzameling gratis toetsenbordthemas. Er zal er altijd een voor je zijn in ons themacentrum.
Creëer je eigen themas
Probeer je eigen themas aan te passen, bijv. veranderende achtergronden en achtergronden met je eigen fotos, veranderende lettertypen, muziek (geluid), dynamische effecten en de kleur van toetsenborden.
Meertalig typen
Emoji-toetsenbord voor Android ondersteunt meer dan 150 talen
Antwoord
1. Eenvoudige integratie
Hieronder staat de syntaxis van een eenvoudige integratie voor Emoji-toetsenbord. De EmojiIconActions -constructer accepteert vier parameters, Context , RootView , EmojiconEditText , en ImageView . Gewoonlijk is het doorgeven van de bovenliggende lay-out als RootView de beste optie om het Emoji-toetsenbord boven alle weergaven te tonen. De EmojiconEditText is een EditText met meer aangepaste attributen om emoji-weergave mogelijk te maken. En de laatste parameter die de ImageView zal gebruiken om te schakelen tussen het normale toetsenbord en het emoji-toetsenbord.
Om emojis weer te geven in TextView gebruiken we EmojiconTextView wat ook een TextView is met meer aangepaste attributen om emoji-weergave mogelijk te maken
EmojIconActions emojIcon= new
EmojIconActions(this, rootView, emojiconEditText,
emojiImageView);
emojIcon.ShowEmojIcon();
Als je het in xml-indeling wilt gebruiken, gebruiken we EmojiconEditText in plaats van de normale EditText .
android:id="@+id/emojicon\_edit\_text"
android:layout\_width="match\_parent"
android:layout\_height="wrap\_content"
emojicon:emojiconSize="28sp"
/>
En EmojiconTextView in plaats van TextView
android:id="@+id/emojicon\_text\_view"
android:layout\_width="wrap\_content"
android:layout\_height="wrap\_content"
emojicon:emojiconSize="28sp"/>
2. Wijzig het standaard Toggle-pictogram
Om te schakelen tussen een normaal toetsenbord en een emoji-toetsenbord, kunt u de setIconsIds () -methode aanroepen die twee parameters, toetsenbordpictogram-ID en smileypictogram-ID .
emojIcon.setIconsIds(R.drawable.ic\_action\_keyboard,R.drawable.smiley);
3. Met behulp van de standaard emojis van het apparaat
Met SuperNove-Emoji kun je apparaat-emojis op een eenvoudige manier gebruiken, je moet de booleaanse waarde van setUseSystemEmoji ( ) en setUseSystemDefault () methoden voor TRUE in elke EmojiconTextView en EmojiconEditText die u gebruikt om de emojis weer te geven.
emojIcon.setUseSystemEmoji(true);
textView.setUseSystemDefault(true);
emojiconEditText.setUseSystemDefault(true);
XML-kenmerk:
emojicon:emojiconUseSystemDefault="true"
4. Grootte van emojis wijzigen
Om de grootte van emojis te wijzigen, moet u de tekstgrootte wijzigen door de waarde van setEmojiconSize () methode.
textView.setEmojiconSize(30);
XML-code
emojicon:emojiconSize="28sp"
5. Detecteren wanneer het toetsenbord geopend of gesloten is
Met SuperNova-Emoji kunt u detecteren wanneer de gebruiker het toetsenbord opent of sluit om zo nodig een aantal acties te ondernemen, zoals enkele weergaven weergeven wanneer het toetsenbord opengaat en het verbergen wanneer het toetsenbord gesloten is. Gebruik het onderstaande codeblok om dit te bereiken.
emojIcon.setKeyboardListener(new
EmojIconActions.KeyboardListener() {
@Override
public
void
onKeyboardOpen() {
Log.i("Keyboard","open");
}
@Override
public
void
onKeyboardClose() {
Log.i("Keyboard","close");
}
});
6.De kleuren van het Emoji-toetsenbord wijzigen zodat ze passen bij uw app-thema
U kunt drie kleuren instellen op het emoji-toetsenbord door drie parameters toe te voegen aan de constructer waarop ze worden gedrukt tabbladen pictogrammen kleur, tabbladen kleur en achtergrond kleur. We zullen dezelfde constructer hierboven gebruiken met de kleurenwaarde.
EmojIconActions emojIcon= new
EmojIconActions(this, rootView, emojiconEditText, emojiImageView,
"#F44336","#e8e8e8","#f4f4f4");
emojIcon.ShowEmojIcon();
7. Voorbeeldapp maken
Nu gaan we een eenvoudige app maken die de emojis integreert om er een goed begrip van te krijgen in een echte app.
1 . Ga in Android Studio naar Bestand ⇒ Nieuw project en vul alle details in die nodig zijn om een nieuw project te maken.
2 . Open build.gradle en voeg de supernova-emoji-bibliotheek toe. Je moet ook zijn maven-repository toevoegen.
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 . Open het lay-outbestand uw hoofdactiviteit activity\_main.xml en voeg onderstaande code toe. Hier kun je zien dat ik de emojiconEditText , emojiconTextView en de 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 . Open nu MainActivity.java en breng de wijzigingen aan zoals hieronder vermeld. Deze activiteit toont de verschillende scenarios voor het implementeren van de SuperNova-Emoji zoals hierboven uitgelegd.
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);
}
});
}
}
Start en test de app.