スライム絵文字をTextViewに設定したい!

こんばんは。

突然ですが、スライム絵文字って知ってますか?

海をわたるとBlob Emojiとか呼ばれてるやつです。

Android 7まで採用されてた黄色のかわいい絵文字のことです。

丸いやつじゃないです。


実装方法とか


  • NotoColorEmoji.ttf(Blobmoji.ttf)をTextViewに設定する。



  • C1710/FilemojiCompat つかう


    • EmojiCompatに対応したttfファイルを読み込める。簡単?

    • TypeFaceを設定していても使える?←つおい




NotoColorEmojiをただ設定すればいいわけじゃない。

まずサンプルコードです。

予めダウンロードしといてね→https://github.com/C1710/blobmoji/releases

MainActivity.ktはカットで。

やってることはTextViewをおいてfontFamilyにスライム絵文字のフォントファイルを指定しているだけです。


<TextView
android:layout_width="wrap_content"
android:textSize="30sp"
android:layout_height="wrap_content"
android:padding="10dp"
android:text="123456789\nあいうえお\n😢🤔😂🎉👽🍕"/>

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="123456789\nあいうえお\n😢🤔😂🎉👽🍕"
android:textSize="30sp"
android:padding="10dp"
android:fontFamily="@font/no_number_blobmoji"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" android:id="@+id/textview"/>

どこにフォントファイル置くのかって話ですが、

resの中にfontを作って中に入れればいいです。

大文字は使えませんので気をつけて。

SnapCrab_NoName_2019-7-10_23-36-55_No-00.png

これだとうまくいきません。

Screenshot_20190710-233604.png


何が起きたか

なぜか数字まで絵文字で表示されてしまったので、(数字の絵文字が白色なので背景と同化して)見えなくなりました。

数字までが絵文字になっているのです。絵文字だけでいいのに。


直す

fonttools/fonttoolsを使います。

Pythonのセットアップは省きます。Pythonなんて触ったこと無いので


インストールする

pip install fonttools


数字だけ消す?

Issueありました。

https://github.com/googlefonts/noto-emoji/issues/218

この手順をたどってスライム絵文字を使えるようにしましょう。


手順

1.適当にディレクトリ(フォルダ)作成。今回はfontsってフォルダをデスクトップに置くことにします。

2.そこにBlobmoji.ttfを入れます。名前を変えて最初の文字を小文字に変えときましょう。

3.さらにテキストファイルを作ってください。名前はcodes-no-numbers.txtで行きましょう。

4.そのテキストファイルに以下のサイトの内容を入れてください。

U+00000からU+FE837まで

https://gist.github.com/MKuranowski/bdbdfb96cf87f6302cd43860aa347163

5.PowerShell(じゃなくてもいいけど)を開いて以下の通りに入力してください。

fonttoolsがちゃんと入ってれば完了するはずです。

pyftsubset blobmoji.ttf --output-file=no_number_blobmoji.ttf --unicodes-file=codes-no-numbers.txt

SnapCrab_NoName_2019-7-10_23-46-33_No-00.png

6.完成です

これをfontディレクトリに入れてfontFamilyに指定してあげればいいはずです。

SnapCrab_NoName_2019-7-11_0-48-28_No-00.png


完成

Screenshot_20190710-234722.png

:thinking:←かわいいいいいいいいいいいいいいい

私はAndroid 7時代の:thinking:が使えて満足です。


便利な使い方とか

GalaxyとかHTCとかASUSとかのAndroid端末は標準でフォント差し替え機能があります。

直接ttfファイルを入れるのではなく、FlipFont Managerを使うことで利用できます。

AOSPで実装してほしい。Root化は流石に、、


お疲れ様です

ありがとうございました。端折りすぎてよくわからんなこれ。

本当は好きなフォントと結合して使いたかったんですが、流石にできないっぽいかな。

お金かかるのでなしです(2回目


参考ページ

https://github.com/fonttools/fonttools

https://github.com/C1710/blobmoji/releases

https://github.com/googlefonts/noto-emoji/issues/218

https://gist.github.com/MKuranowski/bdbdfb96cf87f6302cd43860aa347163


おまけ

Android 10 ってIMEI取れない?

https://developer.android.com/preview/privacy/data-identifiers?hl=ja