web-dev-qa-db-ja.com

TextViewのテキスト色をコードで設定する方法

XMLでは、Android:textColor="#FF0000"のようにtextColor属性でテキストの色を設定できます。しかし、どのようにコーディングによってそれを変えるのですか?

私は試してみました:

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

holderは単なるクラスで、textTextView型です。赤は文字列で設定されたRGB値(#FF0000)です。

しかし、それは赤ではなく別の色を示しています。 setTextColor()でどんな種類のパラメータを渡せますか?ドキュメントではintと書かれていますが、それはリソース参照値なのか、それとも何か他のものでしょうか。

494
Vikas

あなたが使用する必要があります:

holder.text.setTextColor(Color.RED);

健全性チェックのために、私はとにかくそれを試してみました、なぜなら私はとにかくプロジェクトを開いていたからです、そして、はい、それはいいと赤です; D


もちろんColorクラスのさまざまな関数を使って同じ効果を得ることができます。

  • Color.parseColor(Manual) (Lexが使うように)

    text.setTextColor(Color.parseColor("#FFFFFF"));
    
  • Color.rgbColor.argbManual 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);
    

    最初にアルファチャンネルがあり、次に色の値があるところ。

完全なマニュアルをチェックしてください、パブリッククラスColorはObjectを拡張します


1このコードも以前はここにありました。

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

このメソッドは、Android Mでは非推奨になりました。ただし、例に示すように、 サポートライブラリのcontextCompat から使用することもできます。

1146
Nanne

それでもXMLファイルで色を指定したい場合は、

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

それから、これらの2つの方法のうちの1つであなたのコードでそれを参照してください:

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

そしてもう一つ:

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

これはXMLファイルからも実行できます。

Valuesフォルダーに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));
36
newday

あなたが使用することができます

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

透明度を使って色を指定することもできます。

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

アルファの場合 (透明)の値r-赤g-緑b-青

25
Ganapathy C

テキストビューで色を設定するにはさまざまな方法があります。

  1. スタジオのres-> values-> colors.xmlにカラー値を追加する

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

    今度はxmlまたはactvityクラスで色を設定します。

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

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

私は通常、これをすべてのビューに対して行います。

myTextView.setTextColor(0xAARRGGBB);

どこで

  • AAはアルファを定義します(透明の場合は00、不透明の場合はFF)

  • RRGGBBは通常のHTMLカラーコード(赤の場合はFF0000)を定義します。

8
A.W

setTextAppearance の使用を予定している場合は、テーマから継承したスタイルでテキストの色が上書きされることを知っておく必要があります。そのため、両方を使用したい場合は、色を の後に に設定します。

これは動作します:

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

これはあなたのtextcolorを例えば白(暗いテーマの場合)または黒(明るいテーマの場合)にします。

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

これとは反対に、XMLでは、順序は任意です。

7
Robin Gawenda

色をリソースとして( _ xml _ ファイルで)指定したい場合は、 _ argb _ 値(単なるRGB値ではない)を指定する必要があると思います。

色の値を#FFFF0000に変更してみてください。それはあなたに赤を与えるはずです。

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

または

myTextView.setTextColor(0xAARRGGBB);
4
Yash Patil

つかいます:

TextView tv = new TextView(this);
tv.setTextColor(Color.rgb(285,0,0));
4
Talha
textView.setTextColor(ContextCompat.getColor(getApplicationC‌​ontext(),R.color.col‌​orWhite)); 

colors.xmlファイルに、以下のコードを書き込みます。

<color name="colorWhite">#FFFFFF</color>
4
TextView text = new TextView(context);
text.setTextColor(Color.parseColor("any hex value of a color"));

上記のコードは私の側で働いています。ここでtext TextView で色を設定する必要があります。

3
Evon Technology

アダプタを使用すると、このコードを使用してテキストの色を設定できます。

holder.text_view = (TextView) convertView.findViewById(R.id.text_view);
holder.text_view.setTextColor(Color.parseColor("#FF00FF"));
3
Hiren Patel
text1.setTextColor(Color.parseColor("#000000"));
3
Ravina Bhavsar

text.setTextColor(getResource().getColor(R.color.black))はcolor.xmlに黒色を作成しました。

OR

text.setTextColor(Color.parseColor("#000000"))ここに希望の16進コードを入力してください

OR

静的カラーフィールドを使用することができますtext.setTextColor(Color.BLACK)

3
Nitish

Adapterでは、このコードを使用してテキストの色を設定できます。

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

API 23以降、getResources().getColor()は非推奨になりました。

代わりにこれを使ってください。

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

あなたが直接カラーコードを与えたいならば、それから使用してください

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

または、colorsフォルダからカラーコードを渡したい場合は、

textView.setTextColor(R.color.white);
1
reshma

TextViewの色を設定するために、TextView.setTextColor(R.color.YOURCOLOR)は十分ではありません!

それはこのように使われなければなりません -

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

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

OR

myText.setTextColor(Color.parseColor("#54D66A"));
1
IntelliJ Amiya
holder.userType.setTextColor(context.getResources().getColor(
                    R.color.green));
1
Harish Gyanani
   textViewStatus.setTextColor(res.getColor(R.color.green));
1
zudo1337

RGB値を提供する場合:text.setTextColor(Color.rgb(200,0,0));
16進数値から色を解析するためには:text.setTextColor(Color.parseColor("#FFFFFF"));

0
Comrade

同様に、私はcolor.xmlを使っていました:

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

TextViewの背景を以下のように設定します。

textView.setTextColor(R.color.white);

違う色になっていましたが、以下のコードを使うと実際の色になります。

textView.setTextColor(Color.parseColor("#ff6363"));
0
Raj Sharma

textView.setTextColor(Color.BLACK)を使用して、Colorクラスの任意の組み込み色を使用できます。

textView.setTextColor(Color.parseColor(hexRGBvalue))を使ってカスタムカラーを定義することもできます。

0
shravs

私はこのようにしました。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からそれを使用していませんが、ListViewにBaseAdapterを使用しています。だから私はこのコンテキストオブジェクトを使ったのです。

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

それが役に立てば幸い。

0

私は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));
}

これが誰かに役立つことを願っています。

0
IsaiahJ

getColor()は非推奨です

だからこの方法を試してください:

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

これを試して:

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

これを試して:

TextView textview = (TextView) findViewById(R.id.textview );
textview .setTextColor(Color.parseColor("#85F85F"));
0
mohamad sheikhi
TextView textresult = (TextView)findViewById(R.id.textView1);
textresult.setTextColor(Color.GREEN);
0
Pedro Lobito

あなたがアダプタの中にいて、それでもリソースで定義された色を使いたいならば、あなたは以下のアプローチを試みることができます:

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