透過集合功能整理內容 你可以依據偏好儲存及分類內容。

Emoji2

在目前和較舊的裝置上顯示表情符號。
最近更新時間 穩定版 候選版 Beta 版 Alpha 版
2022 年 8 月 10 日 1.2.0 - - -

宣告依附元件

如要新增 Emoji2 的依附元件,必須將 Google Maven 存放區新增至專案。詳情請參閱 Google 的 Maven 存放區

在應用程式或模組的 build.gradle 檔案中,新增您需要的構件依附元件:

Groovy

dependencies {
    def emoji2_version = "1.2.0"

    implementation "androidx.emoji2:emoji2:$emoji2_version"
    implementation "androidx.emoji2:emoji2-views:$emoji2_version"
    implementation "androidx.emoji2:emoji2-views-helper:$emoji2_version"
}

Kotlin

dependencies {
    val emoji2_version = "1.2.0"

    implementation("androidx.emoji2:emoji2:$emoji2_version")
    implementation("androidx.emoji2:emoji2-views:$emoji2_version")
    implementation("androidx.emoji2:emoji2-views-helper:$emoji2_version")
}

如要進一步瞭解依附元件,請參閱「新增建構依附元件」一文。

意見回饋

您的意見可協助我們改善 Jetpack。發現新的問題或有改善這個程式庫的想法時,請告訴我們。建立新的問題之前,請先查看這個程式庫中的現有問題。只要按一下星號按鈕,即可投票給現有的問題。

建立新問題

詳情請參閱 Issue Tracker 說明文件

1.2 版本

1.2.0 版本

2022 年 8 月 10 日

發布 androidx.emoji2:emoji2-*:1.2.01.2.0 版本包含以下修訂項目。

  • 本版本用意為修正錯誤。未新增任何功能或 API。
  • 使用 PrecomputedTextTextView.setText(char[]) 的應用程式應該優先改用此版本。

本版本修正的錯誤

  • Emoji2 會透過捨棄先前預先計算的文字版面配置,為 PrecomputedText 新增表情符號 (I47d06b/211231958)。
  • 從 Android P 向後移植編輯器當機問題修正至設定使用 emoji2 的 EditText (Ifd709b/216891011)。
  • 修正了在使用 TextView.setText(char[]) 的情況下 emoji2 載入字型會發生的當機問題 (Id511eb/206859724)。

1.2.0-rc01 版本

2022 年 7 月 27 日

發布 androidx.emoji2:emoji2-*:1.2.0-rc011.2.0-rc01 版本包含以下修訂項目。

  • 自上次 Beta 版本發布後沒有任何異動。

1.2.0-beta01 版本

2022 年 7 月 13 日

發布 androidx.emoji2:emoji2-*:1.2.0-beta011.2.0-beta01 版包含這些修訂版本。

新功能

  • 與前一版相比沒有任何變更 (此版本為支援 Appcompat 版本)。

1.2.0-alpha04 版本

2022 年 4 月 20 日

androidx.emoji2:emoji2-*:1.2.0-alpha04 發布。1.2.0-alpha04 版本包含這些修訂版本。

新功能

  • 此版本沒有任何變更。

1.2.0-alpha03 版本

2022 年 4 月 6 日

androidx.emoji2:emoji2-*:1.2.0-alpha03 發布。1.2.0-alpha03 版本包含這些修訂版本。

新功能

  • 與前一版相比沒有任何變更(此版本為支援 Appcompat 版本)。

1.2.0-alpha02 版本

2022 年 3 月 23 日

androidx.emoji2:emoji2-*:1.2.0-alpha02 發布。1.2.0-alpha02 版本包含這些修訂版本。

修正錯誤

  • Emoji2 會透過捨棄先前預先計算的文字版面配置,為 PrecomputedText 新增表情符號。(I47d06, b/211231958)
  • 從 Android P 至 EditText(設定為使用 emoji2),修正了向後移植編輯器當機問題。(Ifd709, b/216891011)
  • 修正了當 emoji2 載入字型及使用 TextView.setText(char[]) 時的當機問題。(Id511e, b/206859724)

1.2.0-alpha01 版本

2022 年 2 月 23 日

發布 androidx.emoji2:emoji2-*:1.2.0-alpha011.2.0-alpha01 版本包含這些修訂版本。

自 1.1.0. 以來沒有變更。

1.1

1.1.0 版本

2022 年 2 月 23 日

發布 androidx.emoji2:emoji2-*:1.1.01.1.0 版本包含以下修訂項目。

自 1.0.0 版本以來的重要異動

  • emoji2-bundled 包含表情符號 14 字型
  • 新的 getEmojiMatch API 會傳回鍵盤的正確資訊,以確定表情符號在系統字型下方的 EmojiCompat 字型中的顯示方式
  • 修正 NumberKeyListener 錯誤,讓數字輸入能正確篩選半形字元。

1.1.0-rc01 版本

2022 年 2 月 9 日

發布 androidx.emoji2:emoji2-*:1.1.0-rc011.1.0-rc01 版包含這些修訂版本。

新功能

Beta 版沒有任何變更。

相較於 emoji2 1.0.0 的新功能:

  • emoji2-bundled 含有表情符號 14 字型
  • 新的 getEmojiMatch API 會傳回鍵盤的正確資訊,以確定表情符號在系統字型下方的 EmojiCompat 字型中的顯示方式
  • 修正 NumberKeyListener 錯誤,讓數字輸入能正確篩選半形字元

1.1.0-beta01 版本

2022 年 1 月 26 日

發布 androidx.emoji2:emoji2-*:1.1.0-beta011.1.0-beta01 版本包含這些修訂版本。

修正錯誤

  • androidx-emoji2 beta01 版本。alpha01 無異動 (Ic61d9)

1.1.0-alpha01 版本

2021 年 12 月 15 日

發布 androidx.emoji2:emoji2-*:1.1.0-alpha011.1.0-alpha01 版本包含以下修訂項目。

新功能

  • emoji2-bundled 含有表情符號 14 字型
  • 新的 getEmojiMatch API 會傳回鍵盤的正確資訊,以確定表情符號在系統字型下方的 EmojiCompat 字型中的顯示方式
  • 修正 NumberKeyListener 錯誤,讓數字輸入能正確篩選半形字元

API 異動

  • 新增 API getEmojiMatch,可讓鍵盤更準確地在 EmojiCompat 中查詢表情符號比對行為。
  • 淘汰 hasEmojiGlyph,因為如果測試的字型舊於平台表情符號字型,回傳布林值就不正確。以 getEmojiMatch 取代。(Ie693d)

修正錯誤

  • Emoji2 不會納入 NumberKeyListener 的執行個體,並允許 TextView 設定語言代碼。
  • Appcompat 不會包含 NumberKeyListener 的執行個體以傳遞至 setKeyListener 中,這可以保證 TextView 正確設定 NumberKeyListeners 的語言代碼。(Ibf113b/207119921)

1.0

1.0.1 版本

2021 年 12 月 15 日

發布 androidx.emoji2:emoji2-*:1.0.11.0.1 版本包含以下修訂項目。

修正錯誤

  • Emoji2 不會包裝 NumberKeyListener 的執行個體,並允許 TextView 設定語言代碼。
  • Appcompat 不會包含 NumberKeyListener 的執行個體以傳遞至 setKeyListener 中,這可以保證 TextView 正確設定 NumberKeyListeners 的語言代碼。(Ibf113b/207119921)

1.0.0 版本

2021 年 11 月 17 日

發布 androidx.emoji2:emoji2-*:1.0.01.0.0 版本包含以下修訂項目。

1.0.0 的主要功能

androidx.emoji2 會將 androidx.emoji 換成額外功能:

  • 縮減 APK 大小與 androidx.emoji
  • 自動設定
  • 已新增為 appcompat 1.4 的依附元件

如要進一步瞭解 androidx.emoji2,請參閱支援現代表情符號一文,以及我們的 Android 開發人員高峰會演講在應用程式的 Android 開發人員版中顯示所有表情符號

1.0.0-rc01 版本

2021 年 10 月 27 日

發布 androidx.emoji2:emoji2-*:1.0.0-rc011.0.0-rc01 版本包含這些修訂版本。

  • 自 beta02 以來沒有變更

Emoji2 1.0.0-beta01 版本

2021 年 9 月 15 日

發布 androidx.emoji2:emoji2-*:1.0.0-beta011.0.0-beta01 版本包含以下修訂項目。

API 異動

  • 已將 setLoadingExecutor 新增至 FontRequestEmojiCompatConfig,以取代先前的 setHandler API。這個 API 可讓應用程式設定 FontRequestEmojiCompatConfig 以使用任何背景執行工具。

    這項變更是 androidx.emoji:emoji 的破壞性變更,因此 setHandler 會保留為免人工管理的已淘汰 API 來協助遷移。(I6cd48)

  • EmojiCompat 在 Android 11 上正確設定 EditorInfo.extras

    • 使用 IME 未將 TextText 分類的自訂小工具可能會呼叫 EmojiCompat.updateEditorInfo,藉此通知 IME 支援 EmojiCompat 處理功能。(I1ea9b)

修正錯誤

  • 修正 DefaultEmojiCompatConfig 以正確查詢 API 19 和 28 的表情符號字型提供者。這會修正 emoji2 1.0.0-alpha01 中修正的錯誤。(Ib33d8b/197906329)

1.0.0-alpha03 版本

2021 年 6 月 30 日

發布 androidx.emoji2:emoji2-*:1.0.0-alpha031.0.0-alpha03 版本包含以下修訂項目。

新功能

這個版本為錯誤修正穩定版本。

  1. EmojiEditTextHelper 現允許將 null 做為 KeyListener 傳遞。如此一來,平台就能允許將空值套用到支援 EditText 實作的表情符號。
  2. 使用 EmojiCompatInitializer 時可改善初始啟動延遲,以便在第一次活動恢復後觸發。這能讓應用程式啟動作業沒有中斷,避免載入應用程式啟動時從不顯示 UI 的字型。經過短暫的延遲後,EmojiCompat 就會建立執行緒以載入表情符號字型。
  • 為實作延遲,從 androidx.emoji2:emoji2 新增 androidx.lifecycle:lifecycle-process 的依附元件。對於已納入生命週期的應用程式 (例如含有 Appcompat 的應用程式),這會對 APK 大小造成小幅影響。

API 異動

  • 允許 AppCompatEditText 中的空值 KeyListener。這項操作會還原在 1.4.0-alpha01 中新增至 AppCompatEditText 的非空值註解,並在傳遞空值時還原先前的行為。(I21482b/189559345)

修正錯誤

  • 變更 EmojiCompatInitializer,讓第一個 Activity.onResume 之後的字型載入時間延後 500 毫秒。如此一來,活動就能順利執行 Application.onCreateActivity.onCreate,同時確保在啟動應用程式後不久,就會載入表情符號字型。(I4bff7)

1.0.0-alpha02 版本

2021 年 6 月 2 日

發布 androidx.emoji2:emoji2:1.0.0-alpha02androidx.emoji2:emoji2-views:1.0.0-alpha02androidx.emoji2:emoji2-views-helper:1.0.0-alpha021.0.0-alpha02 版本包含以下修訂項目。

API 異動

  • 已將 emoji2-views-helper 中的套件重新命名為 androidx.emoji2.viewsintegration。這是 AppCompat 1.4.0-alpha01 的破壞性變更,應用程式必須更新 AppCompat 依附元件,才能使用新的 emoji2 版本。(Ie8397)

1.0.0-alpha01 版本

2021 年 5 月 18 日

發布 androidx.emoji2:emoji2:1.0.0-alpha01androidx.emoji2:emoji2-views:1.0.0-alpha01androidx.emoji2:emoji2-views-helper:1.0.0-alpha011.0.0-alpha01 版本包含這些修訂版本。

此初始版本提供的功能

建議為所有應用程式整合 EmojiCompat,以支援 API19 以後的新型表情符號。應用程式中所有使用者產生的內容都含有 🎉。

EmojiCompat 已從 androidx.emoji 構件移至新的 androidx.emoji2,現已在 alpha01 版推出。新構件會取代前一個版本。

AppCompat 1.4.0-alpha01 起,系統會將 emoji2 新增為 AppCompat 的依附元件,並預設啟用 AppCompat 檢視畫面。

emoji2 構件使用 androidx.startup 程式庫推出新的自動設定。您不必再撰寫任何 👨🏽‍💻 程式碼即可顯示 🐻‍❄️。

emoji2 的表情符號異動

  • 已使用 androidx.startup 新增自動設定 EmojiCompatInitializer
  • 新增預設設定,使用服務位置在 DefaultEmojiCompatConfiguration 中找到可下載的字型提供者。
  • 類別已從 androidx.emoji 套件移至 androidx.emoji2
  • EmojiTextView 和相關檢視畫面分割為單獨的構件 emoji2-views。只有在應用程式未使用 appcompat 時,才能使用此功能。
  • 解壓縮輔助程式,可將 emojicompat 整合至自訂檢視畫面,並納入獨立構件 emoji2-views-helper
  • 新增是否可為空值的註解。
  • 即使 EmojiCompat 未初始化 (先前擲回了例外狀況),現在也可以使用 emoji2-views-helper 的輔助程式。

應該新增哪些依附元件?

  • 使用 AppCompat 的應用程式應升級至 appcompat 版本 AppCompat 1.4.0-alpha01 及以上版本。
  • 未採用 AppCompat 的應用程式 (即使用來自平台的 TextView/EditText) 應使用 EmojiTextViewemoji2-views 的相關類別。

如何支援自訂檢視畫面

  • 使用 AppCompat 的應用程式應擴充 AppCompatTextViewAppCompatButton 等,而非 TextView 平台等。
  • 不含 AppCompat 的應用程式應新增 androidx.emoji2:emoji2-views-helper 依附元件,並透過輔助程式整合自訂 TextViewEditText 子類別。

設定自動初始化

  • 應用程式可透過加入資訊清單來停用自動初始化功能:

     <provider
         android:name="androidx.startup.InitializationProvider"
         android:authorities="${applicationId}.androidx-startup"
         android:exported="false"
         tools:node="merge">
         <meta-data android:name="androidx.emoji2.text.EmojiCompatInitializer"
                   tools:node="remove" />
     </provider>
    
  • 這項設定會停用自動設定,然後將自訂設定傳送至 EmojiCompat.init。系統可能會擷取預設設定 DefaultEmojiCompatConfig.create(context) 用以進一步設定,再傳送到 EmojiCompat.init