XMLでは、Android:textColor="#FF0000"
のようにtextColor
属性でテキストの色を設定できます。しかし、どのようにコーディングによってそれを変えるのですか?
私は試してみました:
holder.text.setTextColor(R.color.Red);
holder
は単なるクラスで、text
はTextView
型です。赤は文字列で設定されたRGB値(#FF0000)です。
しかし、それは赤ではなく別の色を示しています。 setTextColor()でどんな種類のパラメータを渡せますか?ドキュメントではint
と書かれていますが、それはリソース参照値なのか、それとも何か他のものでしょうか。
あなたが使用する必要があります:
holder.text.setTextColor(Color.RED);
健全性チェックのために、私はとにかくそれを試してみました、なぜなら私はとにかくプロジェクトを開いていたからです、そして、はい、それはいいと赤です; D
もちろんColor
クラスのさまざまな関数を使って同じ効果を得ることができます。
Color.parseColor
(Manual) (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);
最初にアルファチャンネルがあり、次に色の値があるところ。
完全なマニュアルをチェックしてください、パブリッククラスColorはObjectを拡張します。
1このコードも以前はここにありました。
textView.setTextColor(getResources().getColor(R.color.errorColor));
このメソッドは、Android Mでは非推奨になりました。ただし、例に示すように、 サポートライブラリのcontextCompat から使用することもできます。
それでも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));
そしてもう一つ:
TextView text = (TextView) findViewById(R.id.text);
text.setTextColor(Color.parseColor("#FFFFFF"));
これは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));
あなたが使用することができます
holder.text.setTextColor(Color.rgb(200,0,0));
透明度を使って色を指定することもできます。
holder.text.setTextColor(Color.argb(0,200,0,0));
アルファの場合 (透明)の値r-赤g-緑b-青
テキストビューで色を設定するにはさまざまな方法があります。
スタジオのres-> values-> colors.xmlにカラー値を追加する
<color name="color_purple">#800080</color>
今度はxmlまたはactvityクラスで色を設定します。
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);
これはあなたのtextcolorを例えば白(暗いテーマの場合)または黒(明るいテーマの場合)にします。
textView.setTextColor(Color.RED);
textView.setTextAppearance(context, Android.R.style.TextAppearance_Medium);
これとは反対に、XMLでは、順序は任意です。
holder.text.setTextColor(Color.rgb(200,0,0));
または
myTextView.setTextColor(0xAARRGGBB);
つかいます:
TextView tv = new TextView(this);
tv.setTextColor(Color.rgb(285,0,0));
textView.setTextColor(ContextCompat.getColor(getApplicationContext(),R.color.colorWhite));
colors.xml
ファイルに、以下のコードを書き込みます。
<color name="colorWhite">#FFFFFF</color>
TextView text = new TextView(context);
text.setTextColor(Color.parseColor("any hex value of a color"));
上記のコードは私の側で働いています。ここでtext
は TextView で色を設定する必要があります。
アダプタを使用すると、このコードを使用してテキストの色を設定できます。
holder.text_view = (TextView) convertView.findViewById(R.id.text_view);
holder.text_view.setTextColor(Color.parseColor("#FF00FF"));
text1.setTextColor(Color.parseColor("#000000"));
text.setTextColor(getResource().getColor(R.color.black))
はcolor.xmlに黒色を作成しました。
OR
text.setTextColor(Color.parseColor("#000000"))
ここに希望の16進コードを入力してください
OR
静的カラーフィールドを使用することができますtext.setTextColor(Color.BLACK)
Adapterでは、このコードを使用してテキストの色を設定できます。
holder.my_text_view = (TextView) convertView.findViewById(R.id.my_text_view);
holder.my_text_view.setTextColor(Color.parseColor("#FFFFFF"));
API 23以降、getResources().getColor()
は非推奨になりました。
代わりにこれを使ってください。
textView.setTextColor(ContextCompat.getColor(getApplicationContext(), R.color.color_black));
あなたが直接カラーコードを与えたいならば、それから使用してください
textView.setTextColor(Color.parseColor("#ffffff"));
または、colorsフォルダからカラーコードを渡したい場合は、
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);
OR
myText.setTextColor(Color.parseColor("#54D66A"));
holder.userType.setTextColor(context.getResources().getColor(
R.color.green));
textViewStatus.setTextColor(res.getColor(R.color.green));
RGB値を提供する場合:text.setTextColor(Color.rgb(200,0,0));
16進数値から色を解析するためには:text.setTextColor(Color.parseColor("#FFFFFF"));
同様に、私はcolor.xml
を使っていました:
<color name="white">#ffffff</color>
<color name="black">#000000</color>
TextView
の背景を以下のように設定します。
textView.setTextColor(R.color.white);
違う色になっていましたが、以下のコードを使うと実際の色になります。
textView.setTextColor(Color.parseColor("#ff6363"));
textView.setTextColor(Color.BLACK)
を使用して、Color
クラスの任意の組み込み色を使用できます。
textView.setTextColor(Color.parseColor(hexRGBvalue))
を使ってカスタムカラーを定義することもできます。
私はこのようにしました。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));
それが役に立てば幸い。
私は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));
}
これが誰かに役立つことを願っています。
getColor()は非推奨です
だからこの方法を試してください:
tv_title.setTextColor(ContextCompat.getColor(getApplicationContext(), R.color.sf_white));
これを試して:
textView.setTextColor(getResources().getColor(R.color.errorColor, null));
これを試して:
TextView textview = (TextView) findViewById(R.id.textview );
textview .setTextColor(Color.parseColor("#85F85F"));
TextView textresult = (TextView)findViewById(R.id.textView1);
textresult.setTextColor(Color.GREEN);
あなたがアダプタの中にいて、それでもリソースで定義された色を使いたいならば、あなたは以下のアプローチを試みることができます:
holder.text.setTextColor(holder.text.getContext().getResources().getColor(R.color.myRed));