Czy można ustawić kolor tylko zakresu tekstu w TextView?
Chciałbym zrobić coś podobnego do aplikacji na Twitterze, w której część tekstu jest niebieska. Zobacz zdjęcie poniżej:
(źródło: twimg.com )
android
text
formatting
textview
hpique
źródło
źródło
Oto mała funkcja pomocy. Idealne, gdy masz wiele języków!
źródło
Zawsze znajduję przykłady wizualne pomocne w zrozumieniu nowej koncepcji.
Kolor tła
Kolor pierwszego planu
Połączenie
Dalsze badanie
źródło
Jeśli chcesz mieć większą kontrolę, możesz sprawdzić
TextPaint
klasę. Oto jak z niego korzystać:źródło
Ustaw swój
TextView
tekst jako spannble i zdefiniujForegroundColorSpan
dla swojego tekstu.źródło
Innym sposobem, który można zastosować w niektórych sytuacjach, jest ustawienie koloru łącza we właściwościach widoku, który przyjmuje Spannable.
Jeśli na przykład Spannable będzie używany w TextView, możesz ustawić kolor łącza w pliku XML w następujący sposób:
Możesz również ustawić go w kodzie za pomocą:
źródło
Jest fabryka do tworzenia Spannable i unikaj obsady, tak jak to:
źródło
Zestaw kolorów na tekst przez przepuszczenie String i kolor :
Ustaw tekst na TextView / Button / EditText itp. Dzwoniąc pod poniższy kod:
Widok tekstu:
Uzyskaj kolorowy sznurek:
Ustaw tekst w TextView:
Gotowe
źródło
Wynik:
źródło
Wystarczy dodać do zaakceptowanej odpowiedzi, ponieważ wydaje się, że wszystkie odpowiedzi mówią
android.graphics.Color
tylko: co jeśli zdefiniowany jest kolor, który chcęres/values/colors.xml
?Weźmy na przykład kolory Material Design zdefiniowane w
colors.xml
:(
android_material_design_colours.xml
jest twoim najlepszym przyjacielem)Następnie użyj
ContextCompat.getColor(getContext(), R.color.md_blue_500)
miejsca, w którym chcesz użyćColor.BLUE
, aby:staje się:
Gdzie znalazłem to:
źródło
Oto funkcja rozszerzenia Kotlin, którą mam do tego
Użyj go po ustawieniu tekstu na TextView
źródło
wklej ten kod do swojej MainActivity
źródło
Poniżej działa idealnie dla mnie
źródło
Niektóre odpowiedzi tutaj są nieaktualne. Ponieważ (w większości przypadków) dodasz niestandardową akcję kliknięcia do linku .
Poza tym, zgodnie z pomocą dokumentacji, kolor linku łączącego ciąg znaków będzie miał domyślny kolor. „Domyślnym kolorem łącza jest kolor akcentu motywu lub Android: textColorLink, jeśli ten atrybut jest zdefiniowany w motywie”.
Oto sposób, aby zrobić to bezpiecznie.
Następnie użyj go.
Mam nadzieję, że to zdecydowanie pomoże!
źródło
Z dokumentacji dla programistów, aby zmienić kolor i rozmiar spannble:
1- stwórz klasę:
2 Stwórz swoją spannable używając tej klasy:
źródło