El Arsenal de Android – Emoji

AXEmojiView es una biblioteca avanzada de Android
que agrega emojis, pegatinas, … compatibilidad con su aplicación de Android
DemoAPK • Versiones


Capturas de pantalla

Resumen

Instalación [19659005] AXEmojiView está disponible en JCenter, así que agréguelo como una dependencia (módulo gradle)

Última versión: 1.2.2

Implementación de Gradle

    & # 39;  com.aghajari. emojiview: AXEmojiView: 1.2.2  & # 39; 

Maven

  < dependencia >
  < groupId > com.aghajari.emojiview </  groupId >
  < artifactId > AXEmojiView </  artifactId >
  < versión > 1.2.2 </  versión >
  < tipo > pom </  tipo >
</  adicción > 

¡COMENZEMOS! ?

Instalar Emoji Provider

El primer paso, debe instalar EmojiView con su EmojiProvider.

  AXEmojiManager .  instala ( este  nuevo [19659017] AXIOSEmojiProvider  ()); 

Proveedor de emojis personalizado

Si desea mostrar su Emoji, puede crear su propia implementación de EmojiProvider y pasarlo a AXEmojiManager.install .

Uso básico

Cree un AXEmojiEditText en su diseño.

  < com  .aghajari.axemojiview.view.AXEmojiEditText
             android :  id  =   " @ + id / edt " 
              android :  layout_width  = [19659009] " match_parent " 
              android :  layout_height  =   " match_parent " 
              android :  sugerencia  =   " ingresa tu mensaje ... "    /> 

Ahora debes crear una página. Las páginas actuales son:

  • EmojiView
  • SingleEmojiView
  • StickerView

Probemos EmojiView:

  AXEmojiEditText  edt  =  findViewById ( R [id[1965459016]. .  edt);

 AXEmojiView  emojiView  =    nuevo    AXEmojiView  ( este );
emojiView .  setEditText (edt); 

Y agregue esta página a AXEmojiPopup:

  AXEmojiPopup  emojiPopup  =    new    AXEmojiPopup 

emojiPopup .  alternar ();   //  Alternar la visibilidad del Popup. 
emojiPopup .  show ();   //  Muestra la ventana emergente. 
emojiPopup .  descartar ();   //  Cierre la ventana emergente. 
emojiPopup .  isShowing ();   //  Devuelve verdadero cuando se muestra Popup.  

¡Y terminamos! ? Resultado:

AXEmojiPopupLayout

también puede crear un AXEmojiPopupLayout en lugar de AXEmojiPopup! Creo que AXEmojiPopupLayout tiene un mejor rendimiento.

  1. cree un AXEmojiPopupLayout en su diseño.
      < com  .aghajari.emojiview.view.AXEmojiPopupLayout
         android :  id  =   " @ + id / layout " 
          android :  layout_width  = [19659009] " match_parent " 
          android :  layout_height  =   " wrap_content " 
          android :  layout_gravity  =   " parte inferior "   /> 
  1. agrega la página creada a AXEmojiPopupLayout:
  AXEmojiPopupLayout  diseño  =  findViewBy29 19659015].  id .  diseño);
diseño .  initPopupView (emojiView);

diseño .  alternar ();   //  Alternar la visibilidad del Popup. 
diseño .  show ();   //  Muestra la ventana emergente. 
diseño .  descartar ();   //  Cierre la ventana emergente. 
diseño .  hideAndOpenKeyboard ();   //  Ocultar la ventana emergente 
diseño .  isShowing ();   //  Devuelve verdadero cuando se muestra Popup.  

¡El resultado es el mismo que el resultado de AXEmojiPopup!

Vista de un solo emoji

SingleEmojiView es un RecyclerView y todos los emoji se cargarán en una página (igual que Telegram Inc)

  AXSingleEmojiView  emojiView  =    nuevo    AXSingleEmoji46] AXSingle46] ] ( este );
emojiView .  setEditText (edt); 

Resultado:

StickerView

StickerView: tienes que crear tu StickerProvider y subir todos tus stickers (desde Url, Res, Bitmap o lo que quieras!) Ver ejemplo: WhatsAppProvider [19659014] AXStickerView stickerView = new AXStickerView ( this " stickers " new [19659046] MyStickerProvider ());

Resultado:

También puede crear sus propias páginas personalizadas en StickerProvider. ver ejemplo: ShopStickers

Resultado:

AXEmojiPager – ¡Use varias páginas juntas!

puede crear un AXEmojiPager y agregar todas sus páginas (EmojiView, StickerView, …) a EmojiPager

Habilitar la vista de pie de página en la configuración del tema (si lo desea):

  AXEmojiManager  .  getEmojiViewTheme () .  setFooterEnabled ( true ); 

Y crea tu EmojiPager:

  AXEmojiPager  emojiPager  =    nuevo    AXEmojiPager  ( este );

 AXSingleEmojiView  singleEmojiView  =    nuevo    AXSingleEmojiView  ( este );
emojiPager .  addPage (singleEmojiView,  R .  dibujable .  ic_msg_panel_smiles);

 AXStickerView  stickerView  =    new    AXStickerView  ( this    " stickers "   new    WhatsAppProvider  ());
emojiPager .  addPage (stickerView,  R .  dibujable .  ic_msg_panel_stickers);

emojiPager .  setSwipeWithFingerEnabled ( true );
emojiPager .  setEditText (edt);

 AXEmojiPopup  emojiPopup  =    nuevo    AXEmojiPopup  (emojiPager);
  //  layout.initPopupView (emojiPager);  

Agrega el botón de búsqueda al pie de página:

  emojiPager .  setLeftIcon ( R .  dibujable .  ic_ab_search);
        
          //  Escucha de clics 
        emojiPager .  setOnFooterItemClicked ( nuevo    AXEmojiPager  .onFooterItemClicked () {
             @Override 
              public    void    onClick  ( boolean    leftIcon ) {
                 si  (leftIcon)  Toast .  makeText ( EmojiActivity .   este    " Se hizo clic en la búsqueda "   Toast   .  LORTENG4590 ]) .  show ();
            }
        }); 

Resultado:

Cree sus páginas personalizadas

Cree un AXEmojiBase (ViewGroup) y cargue su diseño de página y agregue su página personalizada a emojiPager

Ejemplo : [19659146] LoadingPage

  emojiPager .  addPage ( nuevo    LoadingView  ( este ),  R .  dibujable .  msg_round_load_m); 

Resultado:

Personalización

Personalice el tema con AXEmojiTheme.

  AXEmojiManager. 

  AXEmojiManager. 1965  getEmojiViewTheme () .  setSelectionColor ( 0xffFF4081 );
 AXEmojiManager .  getEmojiViewTheme () .  setFooterSelectedItemColor ( 0xffFF4081 );
 AXEmojiManager .  getEmojiViewTheme () .  setFooterBackgroundColor ( Color   .  BLANCO );
 AXEmojiManager .  getEmojiViewTheme () .  setSelectionColor ( Color   .  TRANSPARENTE );
 AXEmojiManager .  getEmojiViewTheme () .  setSelectedColor ( 0xffFF4081 );
 AXEmojiManager .  getEmojiViewTheme () .  setCategoryColor ( Color   .  BLANCO );
 AXEmojiManager .  getEmojiViewTheme () .  setAlwaysShowDivider ( true );
 AXEmojiManager .  getEmojiViewTheme () .  setBackgroundColor ( Color   .  LTGRAY );

 AXEmojiManager .  getStickerViewTheme () .  setSelectedColor ( 0xffFF4081 );
 AXEmojiManager .  getStickerViewTheme () .  setCategoryColor ( Color   .  BLANCO );
 AXEmojiManager .  getStickerViewTheme () .  setAlwaysShowDivider ( true );
 AXEmojiManager .  getStickerViewTheme () .  setBackgroundColor ( Color   .  LTGRAY ); [1965909108Risultato:]  

Pie de página personalizado

   //  deshabilita el pie de página predeterminado 
  AXEmojiManager .  getEmojiViewTheme () .  setFooterEnabled ( false );
 AXEmojiManager .  getInstance () .  setBackspaceCategoryEnabled ( false );

  //  agregue su pie de página en AXEmojiPager 
  EmojiPager .  setCustomFooter (footerView,  true ); 

Resultado:

DarkMode

  AXEmojiManager .  getEmojiViewTheme () .  setFooterEnabled ( true );
 AXEmojiManager .  getEmojiViewTheme () .  setSelectionColor ( 0xff82ADD9 );
 AXEmojiManager .  getEmojiViewTheme () .  setSelectedColor ( 0xff82ADD9 );
 AXEmojiManager .  getEmojiViewTheme () .  setFooterSelectedItemColor ( 0xff82ADD9 );
 AXEmojiManager .  getEmojiViewTheme () .  setBackgroundColor ( 0xFF1E2632 );
 AXEmojiManager .  getEmojiViewTheme () .  setCategoryColor ( 0xFF1E2632 );
 AXEmojiManager .  getEmojiViewTheme () .  setFooterBackgroundColor ( 0xFF1E2632 );
 AXEmojiManager .  getEmojiViewTheme () .  setVariantPopupBackgroundColor ( 0xFF232D3A );
 AXEmojiManager .  getEmojiViewTheme () .  setVariantDividerEnabled ( false );
 AXEmojiManager .  getEmojiViewTheme () .  setDividerColor ( 0xFF1B242D );
 AXEmojiManager .  getEmojiViewTheme () .  setDefaultColor ( 0xFF677382 );
 AXEmojiManager .  getEmojiViewTheme () .  setTitleColor ( 0xFF677382 );

 AXEmojiManager .  getStickerViewTheme () .  setSelectionColor ( 0xff82ADD9 );
 AXEmojiManager .  getStickerViewTheme () .  setSelectedColor ( 0xff82ADD9 );
 AXEmojiManager .  getStickerViewTheme () .  setBackgroundColor ( 0xFF1E2632 );
 AXEmojiManager .  getStickerViewTheme () .  setCategoryColor ( 0xFF1E2632 );
 AXEmojiManager .  getStickerViewTheme () .  setDividerColor ( 0xFF1B242D );
 AXEmojiManager .  getStickerViewTheme () .  setDefaultColor ( 0xFF677382 ); 

Resultado:

196516EmojiManager. getEmojiViewTheme () . setFooterEnabled ( true );
AXEmojiManager . getEmojiViewTheme () . setSelectionColor ( Color . TRANSPARENTE );
AXEmojiManager . getEmojiViewTheme () . setSelectedColor ( 0xff82ADD9 );
AXEmojiManager . getEmojiViewTheme () . setFooterSelectedItemColor ( 0xff82ADD9 );
AXEmojiManager . getEmojiViewTheme () . setBackgroundColor ( 0xFF1E2632 );
AXEmojiManager . getEmojiViewTheme () . setCategoryColor ( 0xFF232D3A );
AXEmojiManager . getEmojiViewTheme () . setFooterBackgroundColor ( 0xFF232D3A );
AXEmojiManager . getEmojiViewTheme () . setVariantPopupBackgroundColor ( 0xFF232D3A );
AXEmojiManager . getEmojiViewTheme () . setVariantDividerEnabled ( false );
AXEmojiManager . getEmojiViewTheme () . setDividerColor ( 0xFF1B242D );
AXEmojiManager . getEmojiViewTheme () . setDefaultColor ( 0xFF677382 );
AXEmojiManager . getEmojiViewTheme () . setTitleColor ( 0xFF677382 );
AXEmojiManager . getEmojiViewTheme () . setAlwaysShowDivider ( true );

AXEmojiManager . getStickerViewTheme () . setSelectionColor ( 0xff82ADD9 );
AXEmojiManager . getStickerViewTheme () . setSelectedColor ( 0xff82ADD9 );
AXEmojiManager . getStickerViewTheme () . setBackgroundColor ( 0xFF1E2632 );
AXEmojiManager . getStickerViewTheme () . setCategoryColor ( 0xFF232D3A );
AXEmojiManager . getStickerViewTheme () . setDividerColor ( 0xFF1B242D );
AXEmojiManager . getStickerViewTheme () . setDefaultColor ( 0xFF677382 );
AXEmojiManager . getStickerViewTheme () . setAlwaysShowDivider ( true );

Resultado:

Ver [19659227] AXEmojiPopupLayout [19659043] AXEmojiBase / AXEmojiLayout [19659043] AXEmojiView [19659043] AXSingle 19Eji9045 ] AXEmojiButton [19659043] AXEmojiImageView [19659043] AXEmojiTextView [19659043] AXEmojiCheckBox [19659043] AXEmojiRadioButton

Oyentes

enEmojiActions: [194529903022] [194529903022] ] Emoji emoji, [194590ecent] booleano, booleano de Variant);
void onLongClick ( Ver vista, Emoji emoji, booleano deRecent, booleano deVariantions]; suStickertions

:

   void  onClick ( Ver  ver,  Adhesivo  adhesivo,  booleano  deRecent);
     void  onLongClick ( View  view,  Sticker  sticker,  boolean  fromRecent); 

onEmojiPagerPageChanged: onPageChanged ( AXEmojiPager emojiPager, AXEmojiBase] base,

PopupListener:

   (vacío);
     void  onShow ();
     void  onKeyboardOpened ( int  altura);
     void  onKeyboardClosed (); 

Reemplaza la cadena con emoji

primero necesitas obtener Unicode de emoji:

  String  unicode  =    AXEmojiUtils .  getEmojiUnicode ( 0x1f60d );   //  o Emoji.getUnicode ();  

O

ahora configúrelo en su vista con AXEmojiUtils.replaceWithEmojis.

Ejemplo: Establecer el título de ActionBar:

  Cadena  título  =    " AXEmojiView "     +  unicode;
getSupportActionBar () .  setTitle ( AXEmojiUtils .  replaceWithEmojis ( este  título,  20 ])); [1965

RecentManager y VariantManager

Puede agregar su propio RecentManager personalizado para emojis y pegatinas. implementa RecentEmoji / RecentSticker

  AXEmojiManager .  setRecentEmoji (emojiRecentManager);
 AXEmojiManager .  setRecentSticker (stickerRecentManager); 

Desactivar RecentManagers:

.

Compruebe también

en vivo desde Droidcon, incluida la mayor actualización de Gemini en Android Studio y más lanzamientos del SDK de Android.

Acabamos de lanzar nuestro episodio de otoño de #TheAndroidShow en YouTube etcétera desarrollador.android.comy esta vez …

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *