[android] 코드에서 TextView의 텍스트 색상을 설정하는 방법은 무엇입니까?

XML에서는 textColor속성과 같은 텍스트 색상을 설정할 수 있습니다 android:textColor="#FF0000". 그러나 코딩으로 어떻게 변경합니까?

나는 다음과 같은 것을 시도했다 :

holder.text.setTextColor(R.color.Red);

holder클래스는 어디에 있고 text유형 TextView입니다. 빨간색은 문자열로 설정된 RGB 값 (# FF0000)입니다.

그러나 빨간색이 아닌 다른 색으로 표시됩니다. setTextColor ()에 어떤 종류의 매개 변수를 전달할 수 있습니까? 문서에서는 int이지만 리소스 참조 값입니까 아니면 다른 것입니까?



답변

다음을 사용해야합니다.

holder.text.setTextColor(Color.RED);

Color클래스의 다양한 기능을 사용 하여 동일한 효과를 얻을 수 있습니다.

  • Color.parseColor (수동) (LEX 사용과 유사)

    text.setTextColor(Color.parseColor("#FFFFFF"));
  • Color.rgbColor.argb( Manual rgb ) ( Manual argb ) (Ganapathy와 같은)

    holder.text.setTextColor(Color.rgb(200,0,0));
    holder.text.setTextColor(Color.argb(0,200,0,0));
  • 물론 XML파일 에서 색상을 정의 하려면 다음을 수행하십시오.

    <color name="errorColor">#f00</color>

    때문에 getColor()기능이 지원되지 않습니다 1 , 당신과 같이 사용합니다 :

    ContextCompat.getColor(context, R.color.your_color);
  • 다음과 같이 일반 HEX를 삽입 할 수도 있습니다.

    myTextView.setTextColor(0xAARRGGBB);

    먼저 알파 채널이있는 경우 색상 값입니다.

물론 완전한 클래스public class Color extends Object를 확인하십시오 .


1 이 코드는 여기에도있었습니다.

textView.setTextColor(getResources().getColor(R.color.errorColor));

이 메소드는 이제 Android M에서 더 이상 사용되지 않습니다. 그러나 이제 예제와 같이 지원 라이브러리contextCompat 에서이 메소드를 사용할 수 있습니다 .


답변

여전히 XML 파일에서 색상을 지정하려면 다음을 수행하십시오.

<color name="errorColor">#f00</color>

그런 다음 코드에서 다음 두 가지 방법 중 하나를 사용하여 참조하십시오.

textView.setTextColor(getResources().getColor(R.color.errorColor, getResources().newTheme()));    

또는

textView.setTextColor(getResources().getColor(R.color.errorColor, null));

첫 번째는 Android M에 대해 컴파일하는 경우 바람직하지만 전달하는 테마는 null 일 수 있으므로 더 쉬울 수 있습니까?

Compat 라이브러리를 사용하는 경우 다음과 같이 할 수 있습니다

textView.setTextColor(ContextCompat.getColor(context, R.color.errorColor));


답변

그리고 또 하나 :

TextView text = (TextView) findViewById(R.id.text);
text.setTextColor(Color.parseColor("#FFFFFF"));


답변

XML 파일에서만이 작업을 수행 할 수 있습니다.

color.xml값 폴더에 파일을 작성하십시오 .

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <color name="textbody">#ffcc33</color>

</resources>

그런 다음 모든 XML 파일에서 다음을 사용하여 텍스트 색상을 설정할 수 있습니다.

android:textColor="@color/textbody"

또는 Java 파일에서이 색상을 사용할 수 있습니다.

final TextView tvchange12 = (TextView) findViewById(R.id.textView2);
//Set color for textbody from color.xml file
tvchange1.setTextColor(getResources().getColor(R.color.textbody));


답변

당신이 사용할 수있는

holder.text.setTextColor(Color.rgb(200,0,0));

투명도를 사용하여 원하는 색상을 지정할 수도 있습니다.

holder.text.setTextColor(Color.argb(0,200,0,0));

알파 (투명) 값의 경우 r- 빨간색 g- 녹색 b- 파랑


답변

layout.xml에서 다음 코드를 사용하십시오.

<TextView  android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/add"
android:layout_marginTop="16dp"
android:textAppearance="?
android:attr/textAppearanceMedium"
android:textColor="#25383C"
android:textSize="13sp" />

<TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/add"
        android:layout_marginTop="16dp"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:textColor="#25383C"
        android:textSize="13sp" />


답변

텍스트보기에서 색상을 설정하는 방법에는 여러 가지가 있습니다.

  1. studio res-> values-> colors.xml에 색상 값을 다음과 같이 추가하십시오.

    <color name="color_purple">#800080</color>

    이제 XML 또는 액티비티 클래스의 색상을 다음과 같이 설정하십시오.

    text.setTextColor(getResources().getColor(R.color.color_purple)
  2. Color.parseColor 코드 아래에서 직접 컬러 코드를 사용하려면

    textView.setTextColor(Color.parseColor("#ffffff"));   
  3. RGB를 사용할 수도 있습니다

    text.setTextColor(Color.rgb(200,0,0));
  4. textView에 직접 16 진 코드를 사용할 수도 있습니다. 다음과 같이 일반 HEX를 삽입 할 수도 있습니다.

    text.setTextColor(0xAARRGGBB);
  5. argb를 알파 값과 함께 사용할 수도 있습니다.

       text.setTextColor(Color.argb(0,200,0,0));

    알파 (투명)의 경우 v.

  6. Compat 라이브러리를 사용하는 경우 다음과 같이 할 수 있습니다

       text.setTextColor(ContextCompat.getColor(context, R.color.color_purple));