[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.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- 파랑
답변
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" />
답변
텍스트보기에서 색상을 설정하는 방법에는 여러 가지가 있습니다.
-
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));