그림 이모티콘 선택 도구

그림 이모티콘 선택 도구는 현대적인 디자인과 최신 그림 이모티콘, 사용 편의성을 제공하는 UI 솔루션입니다. 사용자는 그림 이모티콘과 변형을 둘러보고 선택하거나 최근에 사용한 그림 이모티콘 중에서 선택할 수 있습니다.

그림 1. 그림 이모티콘 선택 도구

이 라이브러리를 사용하면 개발자가 자체 그림 이모티콘 선택 도구를 처음부터 빌드하고 유지관리하지 않고도 다양한 소스의 앱에서 사용자에게 포용적이고 통합된 그림 이모티콘 환경을 제공할 수 있습니다.

기능

최신 그림 이모티콘

새롭게 출시된 그림 이모티콘은 그림 이모티콘 선택 도구에 선택적으로 포함됩니다. 그림 이모티콘 선택 도구 라이브러리는 여러 Android 버전 및 기기에서 호환됩니다.

고정 변형

그림 이모티콘을 길게 누르면 다른 성별이나 피부색과 같은 변형 메뉴를 표시합니다. 선택한 변형은 그림 이모티콘 선택 도구에 저장되고 마지막으로 선택한 변형이 기본 패널에 사용됩니다.

이 기능을 사용하면 사용자가 탭 한 번으로 선호하는 그림 이모티콘 변형을 전송할 수 있습니다.

그림 이모티콘 변형
그림 2. 그림 이모티콘 변형

최근 이모티콘

최근 이모티콘
그림 3. 최근 이모티콘

RecentEmojiProvider최근 사용 카테고리에 그림 이모티콘을 제공합니다. 라이브러리에는 가장 일반적인 사용 사례를 충족하는 최신 기본 그림 이모티콘 제공자가 있습니다.

  • 선택한 모든 그림 이모티콘은 공유 환경설정에 앱별로 저장됩니다.
  • 선택 도구에는 선택된 이모티콘이 최대 3행까지 표시되며, 중복 삭제된 이모티콘은 시간 역순으로 표시됩니다.

이 기본 동작으로 충분하면 setRecentEmojiProvider()를 사용할 필요가 없습니다.

그러나 제공자 동작을 맞춤설정해야 할 수도 있습니다. 다음은 몇 가지 일반적인 시나리오입니다.

  • 사용자 계정별로 선택한 이모티콘을 저장하려고 합니다.
  • 공유 환경설정이 아닌 데이터 저장소를 사용하려고 합니다.
  • 최근 이모티콘을 표시하고 빈도별로 정렬하려고 합니다.

그런 다음 RecentEmojiProvider 인터페이스를 구현하고 setRecentEmojiProvider()를 사용하여 설정할 수 있습니다.

EmojiCompat와의 호환성

사용 설정하면 그림 이모티콘 선택 도구에서 EmojiCompat 인스턴스가 사용되어 최대한 많은 그림 이모티콘을 렌더링합니다. 하지만 그림 이모티콘 선택 도구에는 EmojiCompat가 필요하지 않습니다.

기본 요건

앱에서 Android 5.0 (API 수준 21) 이상을 타겟팅해야 합니다.

라이브러리 사용

  1. 앱의 build.gradle 파일에서 androidx.emoji2:emojipicker:$version를 가져옵니다.

    dependencies {
        implementation "androidx.emoji2:emojipicker:$version"
    }
    
  2. 그림 이모티콘 선택 도구 뷰를 확장하고 원하는 경우 emojiGridRowsemojiGridColumns를 설정합니다.

    • emojiGridColumns의 기본 개수는 9입니다.
    • 행 수는 상위 뷰 높이와 emojiGridColumns 값을 기준으로 계산됩니다.
    • emojiGridRows에 부동 소수점 값을 사용하여 사용자가 아래로 스크롤하여 더 많은 이모티콘을 찾을 수 있음을 나타냅니다.
    <androidx.emoji2.emojipicker.EmojiPickerView
        android:id="@+id/emoji_picker"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:emojiGridColumns="9" />
    
    val emojiPickerView = EmojiPickerView(context).apply {
        emojiGridColumns = 15
        layoutParams = ViewGroup.LayoutParams(
            ViewGroup.LayoutParams.MATCH_PARENT,
            ViewGroup.LayoutParams.MATCH_PARENT
        )
    }
    
    findViewById<ViewGroup>(R.id.emoji_picker_layout).addView(emojiPickerView)
    
  3. setOnEmojiPickedListener()를 사용하여 선택한 이모티콘을 뷰에 추가합니다. 예를 들어 EditText에 추가하려면 다음을 실행합니다.

    emojiPickerView.setOnEmojiPickedListener {
        findViewById<EditText>(R.id.edit_text).append(it.emoji)
    }
    
  4. 필요한 경우 RecentEmojiProvider를 설정합니다. 구현 예는 샘플 앱을 참고하세요.

  5. 원하는 경우 스타일을 맞춤설정합니다. 자체 스타일을 만들어 공통 테마 속성을 재정의하고 스타일을 EmojiPickerView에 적용합니다. 예를 들어 colorControlNormal를 재정의하면 카테고리 아이콘 색상이 변경됩니다.

    <style name="CustomStyle" >
        <item name="colorControlNormal">#FFC0CB</item>
    </style>
    <androidx.emoji2.emojipicker.EmojiPickerView
        android:id="@+id/emoji_picker"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:theme="@style/CustomStyle"
        app:emojiGridColumns="9" />
    

샘플 앱

그림 이모티콘 선택 도구 샘플 앱에서는 기본 사용 사례와 함께 다음 추가 시나리오를 보여줍니다.

  • emojiGridRows 또는 emojiGridColumns가 재설정될 때 레이아웃 다시 계산
  • 빈도별로 정렬되는 재정의된 최근 그림 이모티콘 제공자입니다.
  • 추가 스타일 맞춤설정.