Мне было интересно, есть ли простой способ выделить текст в виджете приложения в Android. В обычной деятельности это довольно легко, используя текстовые флаги:
textView.setPaintFlags(textView.getPaintFlags() | Paint.STRIKE_THRU_TEXT_FLAG);
Но так как в виджете приложения я могу использовать только удаленные виды ... Я не знаю, возможно ли это
Кто-нибудь знает что-нибудь об этом?
Спасибо!
android
widget
textview
strikethrough
Антонио
источник
источник
xml-only
решения, как я: stackoverflow.com/a/49062515/3579786Ответы:
Вы можете использовать это:
Конечно, вы также можете добавить другие флаги из класса android.graphics.Paint.
источник
Чтобы сделать это программно в текстовом представлении, не проверенное в других представлениях >>
источник
Еще один способ сделать это программно, который выглядит немного менее как хак, чем способ Paint:
Вместо того, чтобы делать:
делать:
источник
RemoteView
Обновление 2015: ребята, это для очень старых версий Android. Смотрите другие ответы для современных решений!
Чтобы просмотреть весь текстовый вид, вы можете использовать определенное фоновое изображение для имитации эффекта зачеркивания:
Где
bg_strikethrough
рисование - это 9-патч, который удерживает сплошную линию через середину, растя с обеих сторон, с сколькими отступами вы считаете разумными. Я использовал один такой:(увеличено для ясности .. 1300%!)
Это моя версия HDPI, поэтому сохраните ее (первую http://i.stack.imgur.com/nt6BK.png ),
res/drawable-hdpi/bg_strikethrough.9.png
и конфигурация будет работать так:источник
Для этого вы можете использовать это
и для удаления вы можете использовать это
источник
Если у вас есть одно слово, мы можем использовать drawable. Ниже приведен пример:
если у вас есть несколько строк, вы можете использовать следующий код:
источник
Вот расширение для всех вас, Kotlin людей
использование
ограничение
Зачеркивание может быть только того же цвета, что и текст
(т.е. красный текст и синяя зачеркивание невозможны)
источник
Для многострочного TextView вы должны использовать android.text.style.CharacterStyle следующим образом:
источник
Это действительно легко, если вы используете строки:
А потом просто:
источник
Добавьте строку ниже: -
используйте вашу ссылку вместо "тв"
источник
попробуй этот код
источник
Для леденцов и выше. создать рисовать
и использовать его в качестве переднего плана.
android:foreground="@drawable/strike_through"
источник
Вы добавляете в:
Вы устанавливаете / добавляете в Вас переменную:
и затем добавьте .setPaintFlags в переменную TV:
источник
Я пробовал несколько вариантов, но это работает лучше всего для меня:
ура
источник
Ресурсы Android имеют довольно хорошую поддержку HTML-разметки. Поддерживаются следующие
HTML-элементы:
Однако обратите внимание, что он не отображается в предварительном просмотре макетов Android. Последняя проверка на Android Studio 3.3.1
Например, зачеркивание будет выглядеть так:
источник
Я сделал это на обычном (локальном)
TextView
, и он должен работать на удаленном множестве, так как документы перечисляют метод как эквивалент между двумя:remote_text_view.setText(Html.fromHtml("This is <del>crossed off</del>."));
источник
<del>
не поддерживаетсяHtml.fromHtml()
. Вы пробовали<strike>
или<s>
?Я знаю, я отвечаю на старый вопрос, это может быть полезно для кого-то другого, для того, чтобы вычеркнуть определенную часть TextView программно.
Таким образом, в этом примере кода 5 - начальная позиция, а 8 - конечная позиция текста, которую необходимо вычеркнуть, поэтому после выполнения этого кода мы можем получить текст «потребность» с вычеркнутым. Надеюсь, это будет полезно для кого-то еще.
источник