코드에서 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.rgb
및Color.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- 파랑
텍스트보기에서 색상을 설정하는 방법에는 여러 가지가 있습니다.
studio res-> values-> colors.xml에 색상 값을 다음과 같이 추가하십시오.
<color name="color_purple">#800080</color>
이제 XML 또는 액티비티 클래스의 색상을 다음과 같이 설정하십시오.
text.setTextColor(getResources().getColor(R.color.color_purple)
Color.parseColor 코드 아래에서 직접 컬러 코드를 사용하려면
textView.setTextColor(Color.parseColor("#ffffff"));
RGB를 사용할 수도 있습니다
text.setTextColor(Color.rgb(200,0,0));
textView에 직접 16 진 코드를 사용할 수도 있습니다. 다음과 같이 일반 HEX를 삽입 할 수도 있습니다.
text.setTextColor(0xAARRGGBB);
argb를 알파 값과 함께 사용할 수도 있습니다.
text.setTextColor(Color.argb(0,200,0,0));
알파 (투명)의 경우 v.
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(getApplicationContext(),R.color.colorWhite));
에서 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
'development' 카테고리의 다른 글
String.equals vs == (0) | 2020.02.11 |
---|---|
텍스트에서 공백을 모두 제거하십시오 (0) | 2020.02.11 |
ViewPager에서 손가락으로 스 와이프하여 페이징을 비활성화하지만 프로그래밍 방식으로 계속 스 와이프하는 방법은 무엇입니까? (0) | 2020.02.11 |
PHP는 T_PAAMAYIM_NEKUDOTAYIM을 기대합니까? (0) | 2020.02.11 |
Git으로 큰 바이너리 파일 관리 (0) | 2020.02.11 |