web-dev-qa-db-ja.com

Android-状態が変わると、Textviewの色が変わります

TextViewのさまざまな状態(フォーカス、押されている、有効)に色を適用するにはどうすればよいですか?

私はすでにこれを参照しました: http://developer.Android.com/reference/Android/content/res/ColorStateList.html ですが、TextViewにカラー状態リストを適用する方法がわかりませんか?またはそうする他の方法はありますか?

更新:

背景色を変更したい

19
Paresh Mayani

新しいxmlを(drawableフォルダーに)作成します。色を使用して、各イメージを指定できます イベントの状態
そして、このxmlを背景として設定できます

xmlが 'res/drawable/abc.xml'の場合、背景を次のように設定します

Android:background="@drawable/abc"

状態xmlに色を追加するように編集されました
私たちのxml、res/drawable/abc.xml

<?xml version="1.0" encoding="utf-8"?>
   <selector xmlns:Android="http://schemas.Android.com/apk/res/Android">
<item Android:state_selected="true"   
    Android:drawable="@color/gray" />
</selector>

次に、your res\values\strings.xmlで灰色を宣言します

<color name="gray">#808080</color>
15

res/color dirの下にxmlを作成します。

ファイル名の例:selector_white_gray.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:Android="http://schemas.Android.com/apk/res/Android">
    <item Android:state_pressed="true"
          Android:color="@color/Gray"/> <!-- pressed -->
    <item Android:color="@color/White"/> <!-- default -->
</selector>

さらに状態を追加できます。定義済みの「@ color/White」の代わりに「#ffffff」のようなカラーコードを使用できます。注意:Android:drawableではなく、Android:colorを使用してください。この例では、押されたときにテキストの色を変更します。上記のセレクターにtextColor属性を設定します。

<TextView
       Android:layout_width="wrap_content"
       Android:layout_weight="1"
       Android:layout_height="wrap_content"
       Android:textColor="@color/selector_white_gray"
       Android:textSize="18sp" 
       Android:textStyle="bold" >
</TextView>
35
Engin OZTURK

それは簡単です。目的のイベントをインターセプトし、次のように書きます。

TextView textView=(TextView)findViewById(R.id.myText);
String s=getString(R.string.myText);
SpannableString ss=new SpannableString(s);
ss.setSpan(new ForegroundColorSpan(Color.RED), 0, s.length(), Spanned.SPAN_INCLUSIVE_INCLUSIVE);
textView.setText(ss);
0
barmaley

テキストの色を変更する場合は、res/colorフォルダーにxmlとして作成します(たとえば、res/color/mycolor.xml)。次に、TextViewでAndroid:textColor="@color/mycolor"として色を割り当てます。

背景の変更については、他の回答を参照してください。

0
Alex Volovoy
textView = (TextView)findViewById(R.id.myTextView);
mMainView.setOnClickListener(new OnClickListener(){

    @Override
    public void onClick(View arg0) {
        // TODO Auto-generated method stub
        textView.setTextColor(Color.GREEN);//set the color here
    }

});
0
abinaya