development

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

big-blog 2020. 2. 11. 22:35
반응형

코드에서 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- 파랑


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

  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));
    

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" />

나는 일반적으로 모든 견해에 대해 이것을 수행합니다.

myTextView.setTextColor(0xAARRGGBB);

어디

  • AA는 알파를 정의합니다 (투명의 경우 00, 불투명의 경우 FF).

  • RRGGBB는 일반적인 HTML 색상 코드 (예 : 빨간색의 경우 FF0000)를 정의합니다.


setTextAppearance 를 사용하려는 경우 테마에서 상속 된 스타일로 텍스트 색상을 덮어 씁니다. 두 가지를 모두 사용하려면 나중에 색상을 설정하십시오 .

이것은 작동합니다 :

textView.setTextAppearance(context, android.R.style.TextAppearance_Medium);
textView.setTextColor(Color.RED);

이렇게하면 텍스트 색상이 예를 들어 흰색 (어두운 테마의 경우) 또는 검은 색 (밝은 테마의 경우)이됩니다.

textView.setTextColor(Color.RED);
textView.setTextAppearance(context, android.R.style.TextAppearance_Medium);

XML에서 이것과 반대로 순서는 임의적입니다.


XML 파일 에서 색상을 리소스로 지정 하려면 RGB 값이 아닌 ARGB을 제공해야한다고 생각합니다 .

색상 값을로 변경해보십시오 #FFFF0000. 그것은 당신에게 RED를 줄 것입니다.


textView.setTextColor(ContextCompat.getColor(getApplicationC‌​ontext(),R.color.col‌​orWhite)); 

에서 colors.xml파일, 아래의 코드에 쓰기 :

<color name="colorWhite">#FFFFFF</color>

사용하다:

TextView tv = new TextView(this);
tv.setTextColor(Color.rgb(285,0,0));

text.setTextColor(getResource().getColor(R.color.black)) color.xml에 검은 색을 만들었습니다.

또는

text.setTextColor(Color.parseColor("#000000")) 여기에 원하는 16 진수 코드를 입력하십시오

또는

text.setTextColor(Color.BLACK) 정적 색상 필드를 사용할 수 있습니다


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

또는

myTextView.setTextColor(0xAARRGGBB);

어댑터를 사용하면 다음 코드를 사용하여 텍스트 색상을 설정할 수 있습니다.

holder.text_view = (TextView) convertView.findViewById(R.id.text_view);
holder.text_view.setTextColor(Color.parseColor("#FF00FF"));

TextView text = new TextView(context);
text.setTextColor(Color.parseColor("any hex value of a color"));

위의 코드는 내 편입니다. 다음 text색상을 설정해야하는 TextView 입니다.


text1.setTextColor(Color.parseColor("#000000"));

API 23부터는 getResources().getColor()더 이상 사용되지 않습니다.

대신 이것을 사용하십시오 :

textView.setTextColor(ContextCompat.getColor(getApplicationContext(), R.color.color_black));

   textViewStatus.setTextColor(res.getColor(R.color.green));

어댑터에서 다음 코드를 사용하여 텍스트 색상을 설정할 수 있습니다.

holder.my_text_view = (TextView) convertView.findViewById(R.id.my_text_view);
holder.my_text_view.setTextColor(Color.parseColor("#FFFFFF"));

컬러 코드를 직접주고 싶다면

textView.setTextColor(Color.parseColor("#ffffff"));

또는 색상 폴더에서 색상 코드를 제공하려면

textView.setTextColor(R.color.white);

TextView의 색상을 설정하기에 TextView.setTextColor(R.color.YOURCOLOR)충분하지 않습니다!

다음과 같이 사용해야합니다 –

TextView myText = (TextView) findViewById(R.id.YoutTextViewID);

myText.setTextColor(getResources().getColor(R.color.YOURCOLOR);

또는

myText.setTextColor(Color.parseColor("#54D66A"));

holder.userType.setTextColor(context.getResources().getColor(
                    R.color.green));

마찬가지로, 나는 사용하고 있었다 color.xml:

<color name="white">#ffffff</color>
    <color name="black">#000000</color>   

다음 TextView과 같이 배경을 설정하십시오 .

textView.setTextColor(R.color.white);

나는 다른 색을 얻었지만 아래 코드를 사용했을 때 실제 색을 얻었습니다.

textView.setTextColor(Color.parseColor("#ff6363"));

나는 이렇게했다 : res / values ​​폴더에 Colors라는 XML 파일을 만듭니다.

내 Colors.xml :

    <?xml version="1.0" encoding="utf-8"?>
<resources>
    <color name="vermelho_debito">#cc0000</color>
    <color name="azul_credito">#4c4cff</color>
    <color name="preto_bloqueado">#000000</color>
    <color name="verde_claro_fundo_lista">#CFDBC5</color>
    <color name="branco">#ffffff</color>
    <color name="amarelo_corrige">#cccc00</color>
    <color name="verde_confirma">#66b266</color>
</resources>

xml 파일 에서이 색상을 얻으려면이 코드를 사용했습니다 .valor는 TextView이고 ctx는 Context 객체입니다. Activity에서 사용하지 않지만 BaseAdapter를 ListView로 사용하고 있습니다. 그렇기 때문에이 Context Object를 사용했습니다.

valor.setTextColor(ctx.getResources().getColor(R.color.azul_credito));

도움이 되길 바랍니다.


RGB 값 제공 : text.setTextColor(Color.rgb(200,0,0));
16 진 값에서 색상을 구문 분석하려면 다음을 수행하십시오.text.setTextColor(Color.parseColor("#FFFFFF"));


어댑터에 있고 자원에 정의 된 색상을 사용하려는 경우 다음 방법을 시도 할 수 있습니다.

holder.text.setTextColor(holder.text.getContext().getResources().getColor(R.color.myRed));

TextView textresult = (TextView)findViewById(R.id.textView1);
textresult.setTextColor(Color.GREEN);

getColor ()가 사용되지 않습니다

따라서 다음과 같이 시도하십시오.

 tv_title.setTextColor(ContextCompat.getColor(getApplicationContext(), R.color.sf_white));

RecyclerView의 ViewHolder에서 TextView에 대해이 작업을 수행했습니다. 왜 그런지 잘 모르겠지만 ViewHolder 초기화에서 작동하지 않았습니다.

public ViewHolder(View itemView) {
    super(itemView);
    textView = (TextView) itemView.findViewById(R.id.text_view);
    textView.setTextColor(context.getResources().getColor(R.color.myColor));
    // Other stuff
}

그러나 onBindViewHolder로 옮길 때 정상적으로 작동했습니다.

public void onBindViewHolder(ViewHolder holder, int position){
    // Other stuff
    holder.textView.setTextColor(context.getResources().getColor(R.color.myColor));
}

이것이 누군가를 돕기를 바랍니다.

참고 URL : https://stackoverflow.com/questions/4602902/how-to-set-the-text-color-of-textview-in-code



반응형