ベストアンサー
個人的に、Androidシステムで私のお気に入りのキーボードは無料の絵文字キーボードです。
絵文字キーボードの機能
スマートリプライ
次の単語の予測、絵文字の予測、テキストの顔の予測、ハッピーテキストの絵文字、あくびの顔、ウィンクの顔など。
パーソナライズされた無料のテーマ
無料のキーボードテーマの膨大なコレクション。テーマセンターには常に1つあります。
独自のテーマを作成する
独自のテーマを試してカスタマイズしてください。自分の写真で背景や壁紙を変更したり、フォント、音楽(サウンド)、動的効果、キーパッドの色を変更したりします。
多言語入力
Android用の絵文字キーボードは150以上の言語をサポートしています
回答
1。単純な統合
以下は、絵文字キーボードの単純な統合の構文です。 EmojiIconActions コンストラクターは、コンテキスト、 RootView 、 EmojiconEditText 、および ImageView 。通常、親レイアウトをRootViewとして渡すことは、すべてのビューの上に絵文字キーボードを表示するための最良のオプションです。 EmojiconEditText は、絵文字のレンダリングを有効にするためのより多くのカスタム属性を備えた EditText です。そして、ImageViewが通常のキーボードと絵文字キーボードを切り替えるために使用する最後のパラメータ。
TextViewで絵文字を表示するには、 EmojiconTextView spanを使用します。 >これは TextView であり、絵文字のレンダリングを有効にするためのカスタム属性が追加されています
EmojIconActions emojIcon= new
EmojIconActions(this, rootView, emojiconEditText,
emojiImageView);
emojIcon.ShowEmojIcon();
xmlレイアウトで使用する場合は、通常のの代わりに、 EmojiconEditText を使用します。 div> EditText 。
android:id="@+id/emojicon\_edit\_text"
android:layout\_width="match\_parent"
android:layout\_height="wrap\_content"
emojicon:emojiconSize="28sp"
/>
EmojiconTextView TextView
android:id="@+id/emojicon\_text\_view"
android:layout\_width="wrap\_content"
android:layout\_height="wrap\_content"
emojicon:emojiconSize="28sp"/>
2。デフォルトの切り替えアイコンを変更する
通常のキーボードと絵文字キーボードを切り替えるには、 setIconsIds()メソッドを呼び出すことができます。 キーボードアイコンID とスマイリーアイコンID の2つのパラメーター。
emojIcon.setIconsIds(R.drawable.ic\_action\_keyboard,R.drawable.smiley);
3.3。デバイスのデフォルトの絵文字を使用する
SuperNove-Emojiを使用すると、簡単な方法でデバイスの絵文字を使用できます。 setUseSystemEmoji(のブール値を設定する必要があります。 )および setUseSystemDefault()メソッドをすべてのivid =の TRUE に設定”446c1b736c”> EmojiconTextView と EmojiconEditText を使用して絵文字を表示します。
emojIcon.setUseSystemEmoji(true);
textView.setUseSystemDefault(true);
emojiconEditText.setUseSystemDefault(true);
Xml属性:
emojicon:emojiconUseSystemDefault="true"
4。絵文字サイズの変更
絵文字サイズを変更するには、 setEmojiconSize()の値を設定してテキストサイズを変更する必要があります。 span>メソッド。
textView.setEmojiconSize(30);
XMLコード
emojicon:emojiconSize="28sp"
5。キーボードが開いたときまたは閉じたときの検出
SuperNova-Emojiを使用すると、ユーザーがキーボードを開いたり閉じたりしたときに検出して、キーボードの開閉時にビューを表示したり非表示にしたりするなどのアクションを実行できます。キーボードが閉じたとき。これを実現するには、以下のコードブロックを使用します。
emojIcon.setKeyboardListener(new
EmojIconActions.KeyboardListener() {
@Override
public
void
onKeyboardOpen() {
Log.i("Keyboard","open");
}
@Override
public
void
onKeyboardClose() {
Log.i("Keyboard","close");
}
});
6。アプリのテーマに合わせて絵文字キーボードの色を変更する
コンストラクタに3つのパラメータを追加して、タブアイコンの色、タブの色、背景を押すことで、絵文字キーボードに3つの色を設定できます。色。上記と同じコンストラクターをcolors値で使用します。
EmojIconActions emojIcon= new
EmojIconActions(this, rootView, emojiconEditText, emojiImageView,
"#F44336","#e8e8e8","#f4f4f4");
emojIcon.ShowEmojIcon();
7。サンプルアプリの作成
次に、絵文字を統合して実際のアプリで理解できるようにする簡単なアプリを作成します。
1 。 Android Studioで、ファイル⇒新しいプロジェクトに移動し、新しいプロジェクトを作成するために必要なすべての詳細を入力します。
2 。 build.gradle を開き、超新星絵文字ライブラリを追加します。 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 。メインアクティビティ activity\_main.xml のレイアウトファイルを開き、以下のコードを追加します。ここで、 emojiconEditText 、 emojiconTextView 、および 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 。次に、 MainActivity.java を開き、以下のように変更を加えます。このアクティビティは、上記で説明したSuperNova-Emojiを実装するさまざまなシナリオを示しています。
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);
}
});
}
}
アプリを実行してテストします。