1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/GitLqr-LQREmojiLibrary

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
В этом репозитории не указан файл с открытой лицензией (LICENSE). При использовании обратитесь к конкретному описанию проекта и его зависимостям в коде.
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

LQREmojiLibrary

Это очень крутой набор эмодзи, который позволяет использовать эмодзи и стикеры. Он удобен в использовании и предоставляет возможность абстрагировать интерфейс загрузки изображений, что позволяет разработчику самостоятельно выбирать инструмент для загрузки.

1. Краткое описание

Этот набор очень крут и удобен. Этот набор очень крут и удобен. Этот набор очень крут и удобен. Хорошо, теперь давайте перейдём к демонстрационным изображениям:

Скачать DemoApp

image

2. Инициализация

1. Добавьте зависимость проекта

compile 'com.lqr.emoji:library:1.0.2'

2. Инициализируйте

Для использования этой библиотеки необходимо инициализировать LQREmotionKit в пользовательском Application. LQREmotionKit предоставляет четыре метода инициализации, которые можно выбрать в соответствии с вашими потребностями.

Обратите внимание на следующие моменты перед использованием:

  1. Библиотека абстрагировала интерфейс загрузки изображений, позволяя разработчикам выбирать собственный инструмент загрузки (например, Glide, UIL и т. д.), поэтому при использовании этой библиотеки необходимо реализовать интерфейс IImageLoader.
  2. Библиотека поддерживает настройку пути хранения стикеров, что означает, что разработчики могут изменять местоположение стикеров в соответствии со своими потребностями и поддерживают настройку стикеров. По умолчанию стикеры хранятся в каталоге /data/data/имя пакета/files/stickers.

1) Инициализация без IImageLoader

public static void init(Context context)

public static void init(Context context, String stickerPath)

2) Инициализация с IImageLoader

public static void init(Context context, IImageLoader imageLoader)

public static void init(Context context, String stickerPath, IImageLoader imageLoader)

3) Пример

public class App extends Application {

    @Override
    public void onCreate() {
        super.onCreate();
        LQREmotionKit.init(this, new IImageLoader() {
            @Override
            public void displayImage(Context context, String path, ImageView imageView) {
                Glide.with(context).load(path).centerCrop().diskCacheStrategy(DiskCacheStrategy.SOURCE).into(imageView);
            }
        });
    }
}

3. Интеграция функций эмодзи

1. Используйте EmotionLayout в макете

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:layout_width="match_parent"
              android:layout_height="match_parent"
              android:orientation="vertical">

    <!--Содержание-->
    <LinearLayout
        android:id="@+id/llContent"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:orientation="vertical">

        ...
        Здесь обычно размещаются список сообщений, поле ввода текста и другие элементы управления
        ...

    </LinearLayout>

    <!--Область эмодзи-->
    <com.lqr.emoji.EmotionLayout
        android:id="@+id/elEmotion"
        android:layout_width="match_parent"
        android:layout_height="270dp"
        android:visibility="gone"/>

</LinearLayout>

2. Реализуйте смешанный ввод текста и эмодзи (рекомендуется!!!)

1) Передайте поле ввода текста под управление EmotionLayout (настоятельно рекомендуется!!!)

mElEmotion.attachEditText(mEtContent);

2) Реализуйте интерфейс IEmotionSelectedListener и вручную реализуйте смешанный ввод (если у вас есть собственная реализация, вы можете использовать этот метод)

mElEmoji.setEmotionSelectedListener(new IEmotionSelectedListener() {
    @Override
    public void onEmojiSelected(String key) {
        if (mEtContent == null)
            return;
        Editable editable = mEtContent.getText();
        if (key.equals("/DEL")) {
            mEtContent.dispatchKeyEvent(new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_DEL));
        } else {
            int start = mEtContent.getSelectionStart();
            int end = mEtContent.getSelectionEnd();
            start = (start < 0 ? 0 : start);
            end = (start < 0 ? 0 : end);
            editable.replace(start, end, key);

            int editEnd = mEtContent.getSelectionEnd();
            MoonUtils.replaceEmoticons(LQREmotionKit.getContext(), editable, 0, editable.toString().length());
            mEtContent.setSelection(editEnd);
        }
    }

    @Override
    public void onStickerSelected(String categoryName, String stickerName, String stickerBitmapPath) {

    }
});

3. Реализуйте переключение между областью контента и областью эмодзи по аналогии с WeChat

private EmotionKeyboard mEmotionKeyboard;

private void initEmotionKeyboard() {
    mEmotionKeyboard = EmotionKeyboard.with(this);
    mEmotionKeyboard.bindToContent(mLlContent);
    mEmotionKeyboard.bindToEmotionButton(mIvEmo);
    mEmotionKeyboard.bindToEditText(mEtContent);
    mEmotionKeyboard.setEmotionLayout(mElEmotion);
}

4. Эффект

После выполнения вышеуказанных шагов можно достичь следующего эффекта:

image

4. Интеграция функции стикера

1. Установите путь хранения стикеров

Эту часть можно пропустить, если не устанавливать, то по умолчанию стикеры будут храниться в каталоге /data/data/имя пакета/files/stikers. Получение пути к стикеру через LQREmotionKit.getStickerPath()

Расположение, где хранятся стикеры, можно задать только через init() в LQREmotionKit:

LQREmotionKit.init(this, Environment.getExternalStorageDirectory().getAbsolutePath()+ File.separator+"sticker");

LQREmotionKit.init(this, Environment.getExternalStorageDirectory().getAbsolutePath() + File.separator + "sticker", new IImageLoader() {
        @Override
        public void displayImage(Context context, String path, ImageView imageView) {
            Glide.with(context).load(path).centerCrop().diskCacheStrategy(DiskCacheStrategy.SOURCE).into(imageView);
        }
    });

2. Загрузка стикера в указанное место хранения

1. Встроенный стикер

Эта библиотека поддерживает интеграцию стандартных стикеров. Можно разместить стикеры по правилам в каталоге sticker в assets. Когда программа запускается, все стикеры из каталога sticker в assets будут автоматически скопированы в место хранения стикеров.

2. Сетевая загрузка стикера

// Получить путь к месту хранения стикера String stickerPath = LQREmotionKit.getStickerPath(); ... Загрузить из сети (способ реализации этой части кода может отличаться в разных проектах) ...

3. Отслеживание события, когда пользователь нажимает на стикер

mElEmotion.setEmotionSelectedListener(new IEmotionSelectedListener() { @Override public void onEmojiSelected(String key) {

}

@Override
public void onStickerSelected(String categoryName, String stickerName, String stickerBitmapPath) {
    String stickerPath = stickerBitmapPath;
    ...
    Отправить изображение
    ...
});

4. Эффект

После выполнения предыдущих шагов можно реализовать следующий эффект:

image

5. Управление дополнительными кнопками

1. Настройка дополнительных кнопок для управления эмоциями

По умолчанию в нижней части вкладки эмодзи не отображаются кнопки «Добавить» и «Настройки». Если необходимо, это можно контролировать с помощью следующего кода.

mElEmotion.setEmotionAddVisiable(true); mElEmotion.setEmotionSettingVisiable(true); mElEmotion.setEmotionExtClickListener(new IEmotionExtClickListener() { @Override public void onEmotionAddClick(View view) { Toast.makeText(getApplicationContext(), "add", Toast.LENGTH_SHORT).show(); }

@Override
public void onEmotionSettingClick(View view) {
    Toast.makeText(getApplicationContext(), "setting", Toast.LENGTH_SHORT).show();
}

});

2. Эффект

image

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Описание недоступно Развернуть Свернуть
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/GitLqr-LQREmojiLibrary.git
git@api.gitlife.ru:oschina-mirror/GitLqr-LQREmojiLibrary.git
oschina-mirror
GitLqr-LQREmojiLibrary
GitLqr-LQREmojiLibrary
master