Подтвердить что ты не робот

Как установить цвет TextView в Android?

В файле string.xml я использую следующий тег

<color name="mycolor1">#F5DC49</color>

Если я использую

 textview1.setTextColor(Color.CYAN);

он работает, но

 textview1.setTextColor(R.color.mycolor1);

не работает.

Как я могу использовать цвет, определенный в файле XML?

4b9b3361

Ответ 1

TextView.setTextColor() принимает int, представляющий цвет (например, 0xFFF5DC49), а не идентификатор ресурса из xml файла. В упражнении вы можете сделать что-то вроде:

   textView1.setTextColor(getResources().getColor(R.color.mycolor))

за пределами действия вам понадобится Context например.

   textView1.setTextColor(context.getResources().getColor(R.color.mycolor))

Ответ 2

 textView1.setTextColor(Color.parseColor("#F5DC49"));

без ресурсов

Ответ 3

context.getResources().getColor устарел.

Вам нужно использовать ContextCompat.getColor(), который является частью библиотеки поддержки V4 ( поэтому он будет работать для всех предыдущих API).

ContextCompat.getColor(context, R.color.my_color);

Вам нужно будет добавить библиотеку поддержки V4, добавив следующее в массив dependencies внутри вашего приложения build.gradle:

compile 'com.android.support:support-v4:23.0.1' # or any version above

Если вам интересно, в документации указано, что метод будет использовать контекстную тему:

Начиная с M, возвращенный цвет будет стилизован для указанного Контекстная тема