Данный проект представляет собой гармонизированную версию открытого проекта GSYRickText.
Версия: v2.0.2
Поддерживает текстовый формат, аналогичный Weibo, включая эмодзи, упоминания (@username), темы (#topic), URL-ссылки и числа.
Пример демонстрирует использование различных эффектов ввода текста.
// Основной импорт
implementation project(':draweetext')
implementation project(':xedittext')
Добавьте следующее в 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 )