- Как использовать «setTextColor (hexaValue)» на Kotlin для Android,
- Задний план
- Проблема
- Что я пробовал
- Вопросы
- How to change Text Color of TextView in Android?
- Android TextView – Text Color
- Change Text Color of TextView via XML Layout File
- Example 1 – TextView Color
- Change Text Color of TextView in Kotlin File
- Example 2 – TextView Color
- Conclusion
- Как установить цвет текста TextView в коде?
- 30 ответов
- Как использовать «setTextColor (hexaValue)» на Kotlin для Android,
- Задний план
- Проблема
- Что я пробовал
- Вопросы
- Kotlin Android Snackbar – Change Text Color, Background Color, Action Button Color
- Android Snackbar – Change Text Color, Background Color, Action Button Color
- Example – Snackbar Change Background and Text Color
- Conclusion
Как использовать «setTextColor (hexaValue)» на Kotlin для Android,
Задний план
В Java я мог напрямую изменить цвет текста TextView, используя его стандартное шестнадцатеричное значение:
Проблема
На Kotlin, если я пытаюсь написать такую вещь, я получаю странную ошибку сборки:
Ошибка: (15, 18) Ни одна из следующих функций не может быть вызвана с предоставленными аргументами: public open fun setTextColor (p0: ColorStateList!): Модуль, определенный в android.widget.TextView public open fun setTextColor (p0: Int): Unit определено в android.widget.TextView
Что я пробовал
Я попытался найти об этом через Интернет, и я не увидел ничего особенного в шестнадцатеричных значениях. Выглядит так же, как на Java:
Тогда я решил просто написать на Java и перевести на Kotlin. Результат очень нечитаемый с точки зрения значения цвета:
Мне кажется, что шестнадцатеричное значение Integer, которое используется для Kotlin, подписано, в то время как на Java оно автоматически конвертируется в знаковое, так что это вызывает переворачивание значений и необходимость устанавливать знак минус при необходимости.
Единственное, о чем я могу думать, это все еще позволяет хорошо читать, это что-то вроде этого:
Однако это имеет несколько недостатков:
- Это намного дольше.
- Он преобразует строку, поэтому он гораздо менее эффективен
- Самое главное: он работает только с API 26 (Android O), который в настоящее время активен примерно на 1% устройств Android по всему миру.
Вопросы
Почему это происходит?
Что именно я могу сделать, чтобы сделать его максимально читабельным, без преобразования строк и работать на всех версиях Android (в моем случае minSdkVersion 14)?
Источник
How to change Text Color of TextView in Android?
Android TextView – Text Color
TextView Text Color – To change the color of text in TextView, you can set the color in layout XML file using textColor attribute or change the color dynamically in Kotlin file using setTextColor() method.
In this tutorial, we will learn both the layout file approach and Kotlin line approach to change the text color of TextView.
Change Text Color of TextView via XML Layout File
textColor attribute of TextView widget lets you set a color of your choice. You can provide the color as hex value in one of the four formats: rgb, argb, rrggbb, or aarrggbb.
The syntax to set textColor attribute for TextView using different color formats is
Example 1 – TextView Color
Let us create an Android application with Kotlin support in Android Studio and change the text color of TextView in XML layout file.
activity_main.xml
We have used a string resource, and the contents of strings.xml is
There is no need to change the MainActivity.kt file. The default code would do.
MainActivity.kt
Run this application, and you would get the following screenshot.
Change Text Color of TextView in Kotlin File
We can get the reference to TextView widget present in layout file and change the color dynamically with Kotlin code.
To set the color to the TextView widget, call setTextColor() method on the TextView widget reference with specific color passed as argument.
setTextColor() method takes int as argument. Use android.graphics.Color class to get an integer for a given color. You can provide the color as hex value in one of the four formats: rgb, argb, rrggbb, or aarrggbb.
The syntax to set text color using setTextColor() method of TextView in Kotlin Activity file is
Example 2 – TextView Color
Let us create an Android application with Kotlin support in Android Studio and change the text color of TextView dynamically/programmatically in Kotlin file.
The layout file contains a TextView. Since we are about to change the text color in Kotlin file, no text color is specified in layout XML file.
activity_main.xml
We have used a string resource, and the contents of strings.xml is
We have got the reference to the TextView in layout file using findViewById() method. Call to setTextColor() method on the TextView reference would set the text color of TextView.
MainActivity.kt
Run this application, and you would get the following screenshot.
Conclusion
In this Kotlin Android Tutorial, we learned how to set or change the text/font color of TextView widget in Android application.
Источник
Как установить цвет текста TextView в коде?
в XML мы можем установить цвет текста с помощью
30 ответов
вы должны использовать:
для проверки здравомыслия я просто попробовал, потому что у меня все равно был открыт проект, и да, он хороший и красный ;D
вы можете использовать различные функции из Color класс, чтобы получить тот же эффект, конечно.
Color.parseColor (ручное) (как Лекс использует)
Color.rgb и Color.argb (руководство rgb) (руководство формате ARGB) (как Ганапати использует)
и конечно, если вы хотите определить свой цвет в , вы можете сделать это:
потому что getColor() функция является устаревшим 1 , вам нужно использовать его так:
вы также можете вставить простой шестигранник, например:
где вы имеете альфа-канал сперва, тогда цвет значение.
1 этот код также был здесь:
этот метод теперь устарел в Android M. Однако вы можете использовать его из contextCompat в библиотеке поддержки, как показывает пример.
если вы все еще хотите указать свои цвета в XML-файле:
затем ссылайтесь на него в своем коде одним из этих двух методов:
первый, вероятно, предпочтительнее, если вы компилируете против Android M, однако тема, которую вы передаете, может быть нулевой, так что, может быть, это проще для вас?
и если вы используете библиотеку Compat, вы можете сделать что-то вроде этого
вы можете сделать это только из XML-файла.
создать color.xml файл в папке значения:
затем в любом XML-файле вы можете установить цвет для текста, используя,
или вы можете использовать этот цвет в Java-файл:
вы также можете указать, какой цвет вы хотите с прозрачностью.
a для Альфа (прозрачный) значение r-красный g-зеленый b-синий
используйте следующий код в layout.в XML
существует много разных способов установить цвет в текстовом представлении.
добавить значение цвета в studio res — > значения — >цвета.xml как
теперь установите цвет в классе xml или actvity как
если вы хотите дать цветовой код непосредственно использовать ниже цвета.parseColor code
вы также можете использовать RGB
Use также может использовать прямой hexcode для поле TextView. Вы также можете вставить простой HEX, например:
вы также можете использовать argb с Альфа-значениями.
a для Альфа (прозрачный) v.
и если вы используете библиотеку Compat, вы можете сделать что-то вроде этого
обычно я делаю это для любых представлений:
AA определяет alpha (00 для прозрачного, FF для непрозрачного)
RRGGBB определяет обычный код цвета HTML (например, ff0000 для красного).
Если вы планируете использовать setTextAppearance вы должны знать, что он будет перезаписывать цвет текста со стилем, унаследованным от темы. Поэтому, если вы хотите использовать оба, установите цвет после.
в то время как это приведет к тому, что ваш textcolor будет, например, белым (для темной темы) или черным(для светлой темы):
вопреки этому в XML порядок является произвольным.
Я считаю, что если вы хотите указать цвет в качестве ресурса (в XML file), вам придется предоставить его формате ARGB значение (не просто значение RGB).
попробуйте изменить значение цвета на #FFFF0000 . Это должно дать вам красный цвет.
Источник
Как использовать «setTextColor (hexaValue)» на Kotlin для Android,
Задний план
В Java я мог напрямую изменить цвет текста TextView, используя стандартное шестнадцатеричное значение:
Проблема
На Котлине, если я попытаюсь написать такую вещь, я получаю странную ошибку сборки:
Ошибка: (15, 18) Никакие из следующих функций не могут быть вызваны с предоставленными аргументами: public open fun setTextColor (p0: ColorStateList!): Единица, определенная в android.widget.TextView public open fun setTextColor (p0: Int): Единица определен в android.widget.TextView
Что я пробовал
Я попытался найти об этом через Интернет, и я не мог видеть ничего особенного в значении гекса-десятичной величины. Кажется, что и на Java:
Затем я решил просто написать на Java и преобразовать в Kotlin. Результат очень нечитабелен с точки зрения значения цвета:
Мне кажется, что шестнадцатеричное значение Integer, которое используется для Kotlin, подписано, тогда как на Java оно преобразуется в подписанное автоматически, поэтому это приводит к перевороту значений и необходимости устанавливать знак минус, когда это необходимо.
Единственное, что я могу придумать, что все еще позволяет хорошо его прочесть, это что-то вроде этого:
Однако это имеет несколько недостатков:
- Дольше.
- Он преобразует строку, поэтому она намного менее эффективна
- Самое главное: он работает только с API 26 (Android O), который в настоящее время активен примерно на 1% устройств Android по всему миру.
Вопросы
Почему это происходит?
Что я могу сделать, чтобы сделать его наиболее читаемым, без преобразования строк и работать со всеми версиями Android (minSdkVersion 14 в моем случае)?
Oxff000000 разрешен Long в Kotlin, поэтому прямо сейчас нет возможности использовать этот литерал как есть, однако 0xff000000.toInt() даст вам точно такой же результат, как -0x1000000 чтобы вы могли использовать .toInt() . Под капотом это эквивалент (int)4278190080L Java.
Кроме того, с расширениями Kotlin вы можете написать простое свойство, подобное этому
и вы сможете использовать более сжатый синтаксис textView.textColor = 0xff000000
Вы можете попробовать это, чтобы программным образом настроить цвет текста.
Источник
Kotlin Android Snackbar – Change Text Color, Background Color, Action Button Color
Android Snackbar – Change Text Color, Background Color, Action Button Color
Snackbar’s Text Color, Background Color, Action Button Color could be changed using view.setBackgroundColor(), snack.view.snackbar_text.setTextColor() and setActionTextColor() respectively.
1. To change Snackbar’s Text Color
2. To change Snackbar’s Background Color
3. To change Snackbar’s Action Button Color
The Snackbar’s look and feel would change to as shown in the following screenshot.
You may change the colors as per your requirement.
Example – Snackbar Change Background and Text Color
In this example, we shall display a Snackbar when button in the activity is clicked. Snackbar’s background color, Snackbar’s text color, Snackbar’s Action button text color are changed from their default values.
Create an Android Application with Kotlin Support and find the code for activity_main.xml layout file and MainActivity.kt provided below.
activity_main.xml
MainActivity.kt
Run this Android Application, and you get an Android screen display as shown in the following, with a button. Click on this button. Snackbar with modified colors will slide up from the bottom of the screen.
Conclusion
In this Kotlin Android Tutorial, we have learnt to change Snackbar’s text color, background color, action button text color.
Источник