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

OSCHINA-MIRROR/ts_ohos-richtext_ohos

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

GSYRichText

Проектное описание

Данный проект представляет собой гармонизированную версию открытого проекта GSYRickText.

Версия: v2.0.2

Поддерживает текстовый формат, аналогичный Weibo, включая эмодзи, упоминания (@username), темы (#topic), URL-ссылки и числа.

Пример демонстрирует использование различных эффектов ввода текста.

Название проекта: GSYRichText

Серия: адаптация компонентов третьих сторон для HarmonyOS

Функционал: фреймворк для отображения богатых текстовых данных для HarmonyOS

Состояние портирования: частично завершено

Различие вызова: из-за отсутствия некоторых базовых API, реализовано только часть функций

Оригинальный GitHub проект: https://github.com/CarGuo/GSYRickText

Поддерживаемые функции

  • Эмодзи
  • Темы (#)
  • Упоминания (@)
  • URL и числа (настраиваемые)
  • Эффекты при нажатии
  • Настройка размера и цвета эмодзи, центральное расположение

Инструкция по установке

Вариант 1

// Основной импорт  
implementation project(':draweetext')  
implementation project(':xedittext')  

Вариант 2

Добавьте следующее в repositories файла build.gradle корневой директории проекта:

mavenCentral()  

Добавьте следующее в зависимости модуля build.gradle:

implementation 'com.gitee.ts_ohos:draweetext:1.0.0'  
implementation 'com.gitee.ts_yöntem: xedittext:1.0.0'  

Инструкция по использованию#### Кодовое использование

Класс RichTextFactory, используемый для управления стилем богатого текста (цвет шрифта, размер и т.д.) и способами его добавления.

    /**
     * Конструктор RichTextFactory
     *
     * @param context контекст
     */
    public RichTextFactory(Context context) {
        this.richTextBuilder = new RichTextBuilder();
        this.textFormClickable = new TextForm();
        this.textFormNormal = new TextForm();
        RgbColor colorBlue = new RgbColor(COLOR_R_CLICKABLE_TEXT, COLOR_G_CLICKABLE_TEXT, COLOR_B_CLICKABLE_TEXT);
        RgbColor colorRed = new RgbColor(255, 0, 0);
        RgbColor colorWhite = new RgbColor(255, 255, 255);
        RgbColor colorYellow = new RgbColor(255, 255, 0);
``````java
        textFormClickable.setTextColor(colorYellow.asArgbInt());
        textFormClickable.setTextSize(AttrHelper.fp2px(FP_TEXT_SIZE, context));
        textFormClickable.setTextFont(Font.DEFAULT_BOLD);
        textFormNormal.setTextSize(AttrHelper.fp2px(FP_TEXT_SIZE, context));
        textFormNormal.setTextColor(colorWhite.asArgbInt());
``````markdown
Пример обычной настройки rich text с использованием встроенных API.
RichText richText = new RichTextBuilder()
        .mergeForm(new TextForm().setUnderline(true).setTextColor(colorWhite.asArgbInt())).addText("Это тестовый текст: ")
        .revertForm().mergeForm(new TextForm().setSubscript(true).setTextColor(colorYellow.asArgbInt())).addText("#тема тема#")
        .revertForm().mergeForm(new TextForm().setTextColor(colorWhite.asArgbInt())).addText(", @какой-то человек ")
        .revertForm().mergeForm(new TextForm().setTextColor(colorRed.asArgbInt())).addText("@22222 @kkkk")
        .revertForm().addText("\n").mergeForm(new TextForm().setStrikeThrough(true).setTextColor(colorWhite.asArgbInt())).addText("\nДобавление номера телефона:  Yöntem 186 0000 1111")
        .build();

Пример настройки rich text с возможностью создания пользовательских стилей, а также добавлением кликабельных элементов и последовательного добавления текста
    // Добавляем rich text
    RichTextFactory addRichTextFactory = new RichTextFactory(getContext());
    addRichTextFactory.addNormalText("Добавление ссылки:");
    addRichTextFactory.addClickableText("www.baidu.com");

    addRichTextFactory.addNormalText("Добавление имени:");
    addRichTextFactory.addClickableText("@22222 ");

    addRichTextFactory.addNormalText("Добавление темы:");
    addRichTextFactory.addClickableText("@哈哈哈哈哈哈");
        DraweeTextView protocolPrivacyTextContainer = (DraweeTextView) findViewById(ResourceTable.Id_protocolPrivacyText);
        protocolPrivacyTextContainer.setRichText(protocolPrivacyText);
    // Добавление эффекта при клике
    protocolPrivacyTextContainer.setClickedListener(new Component.ClickedListener() {
        @Override
        public void onClick(Component component) {
        }
    });
}
Добавление изображения с эмодзи
    PixelMapElement pixelMapElement = getPixelMapDrawable(MyMainAbilitySlice.this, ResourceTable.Media_e1);
    DraweeSpan span = new DraweeSpan.Builder(
            "https://i0.hdslb.com/bfs/vip/7a4cb0b644214d476ce198ddf6a7a0aa31311199.png")
            .setLayout(WIDTH, HEIGHT)
            .setPlaceHolderImage(pixelMapElement)
            .build();        PixelMapElement pixelMapElement2 = getPixelMapDrawable(MyMainAbilitySlice.this, ResourceTable.Media_e2);
    DraweeSpan span2 = new DraweeSpan.Builder(
            "https://i0.hdslb.com/bfs/vip/7a4cb0b644214d476ce198ddf6a7a0aa31311199.png")
            .setLayout(WIDTH, HEIGHT)
            .setPlaceHolderImage(pixelMapElement2)
            .build();

... ...

    DraweeTextView draweeTextView1 = new DraweeTextView(MyMainAbilitySlice.this);
    draweeTextView1.setText("O_O");
    draweeTextView1.setTextSize(50);
    draweeTextView1.setAroundElements(span, null, span2, null);
    draweeTextView1.setTextColor(Color.WHITE);
    draweeTextView1.setPadding(8, 8, 8, 8);

Лицензия

Лицензия MIT

Авторское право © 2017 Шуйю Гуо

Указанному лицу предоставляется лицензия бесплатно, чтобы любому человеку, получившему копию этого программного обеспечения и связанных с ним документов («Программа»), было позволено работать с Программой без каких-либо ограничений, включая безвозмездное использование, копирование, модификацию, слияние, публикацию, распространение, sublicense'ing и / или продажу копий Программы, а также разрешить другим лицам, которым дана Программа, делать то же самое, при условии соблюдения следующих условий:

Вышеуказанные уведомления об авторском праве и настоящие условия лицензии должны присутствовать во всех копиях или значительных частях Программы.ПРОГРАММА ПРЕДОСТАВЛЕНА «КАК ЕСТЬ», БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ, ВЫРАЖЕННЫХ ИЛИ ПОДРАЗУМЕВАННЫХ, ВКЛЮЧАЯ, НО НЕ ОГРАНИЧИВАЯСЬ, ГАРАНТИЯМИ ТОРГОВЛЕНИЯ, ПРИГОДНОСТИ ДЛЯ КОНКРЕТНЫХ ЦЕЛЕЙ И НЕНАРУШЕНИЯ ПРАВ. В НИКАКОМ СЛУЧАЕ АВТОРЫ И УДЕРЖИВАТЕЛИ АВТОРСКИХ ПРАВ НЕ ДОЛЖНЫ БЫТЬ ОТВЕТСТВЕННЫМИ ЗА ЛЮБЫЕ ПРЕТЕНДИРОВАНИЯ, УЩЕРБ ИЛИ ДРУГИЕ ОТВЕТСТВЕННОСТИ, В ТОМ ЧИСЛЕ, В ДЕЙСТВИИ КОНТРАКТА, ДЕЛИКТА ИЛИ ИНЫХ ДЕЙСТВИЙ, ВОЗНИКАЮЩИХ ИЗ, В СВЯЗИ С ИЛИ В СВЯЗИ С ПРОГРАМОЙ ИЛИ ИСПОЛЬЗОВАНИЕМ ИЛИ ДРУГИМИ ВОПРОСАМИ С ПРОГРАМОЙ.

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

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

Введение

GSYRickText поддерживает текстовые эффекты, подобные тем, что есть в Weibo, включая эмодзи, @упоминание, темы и URL-ссылки. DEMO также демонстрирует использование эффектов ввода для различных полей ввода. Развернуть Свернуть
MIT
Отмена

Обновления

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

Участники

все

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

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