質問

このようにして、さまざまな状態で背景を描画可能なボタンを作成しました。

 <selector xmlns:android="http://schemas.android.com/apk/res/android">
 <item android:state_pressed="true" android:drawable="@drawable/btn_location_pressed" /> <!-- pressed -->
 <item android:state_focused="true" android:drawable="@drawable/btn_location_pressed"/> <!-- focused -->
 <item android:drawable="@drawable/btn_location"/> <!-- default -->

ここでの問題は、描画可能なものと同じようにテキストコラーを変更しようとしていることですが、できないことです。私はすでにAndroid:TextColorとAndroid:Colorを試しましたが、最初は動作しませんが、秒は私の背景を変えます。

次のコードは私のレイアウトの一部です。テキストの色に関しては、通常の状態のテキストの色でのみ機能するため、押されている間は白の色に変えません

<Button android:id="@+id/location_name"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:paddingTop="5dp"
        android:background="@drawable/location"          
        android:textSize="15sp"
        android:textColor="@color/location_color"
        android:textColorHighlight="#FFFFFF"
   />

誰かが手がかりを持っていますか?

役に立ちましたか?

解決

たとえば、バックグラウンドのためにしたように、ボタンのステートフルな色を作成します。

<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <!-- Focused and not pressed -->
    <item android:state_focused="true" 
          android:state_pressed="false" 
          android:color="#ffffff" />

    <!-- Focused and pressed -->
    <item android:state_focused="true" 
          android:state_pressed="true" 
          android:color="#000000" />

    <!-- Unfocused and pressed -->
    <item android:state_focused="false" 
          android:state_pressed="true" 
          android:color="#000000" />

    <!-- Default color -->
    <item android:color="#ffffff" />

</selector>

XMLをres/drawableフォルダーのファイルに入れます。次に、テキストの色として描画可能を設定するだけです。

android:textColor="@drawable/button_text_color"

他のヒント

それを行う別の方法はあなたのクラスにあります:

import android.graphics.Color; // add to top of class  

Button btn = (Button)findViewById(R.id.btn);

// set button text colour to be blue
btn.setTextColor(Color.parseColor("blue"));

// set button text colour to be red
btn.setTextColor(Color.parseColor("#FF0000"));

// set button text color to be a color from your resources (could be strings.xml)
btn.setTextColor(getResources().getColor(R.color.yourColor));

// set button background colour to be green
btn.setBackgroundColor(Color.GREEN);

OK非常にシンプルな最初の1に移動します。res-valuse and open Colors.xml 2.Copy 1定義されたテキストのコピー#ff4081と変更名前を変更します。たとえば、ホワイトに変更して値を変更します。このような白い価値

<color name="White">#FFFFFF</color>

次に、ボタンの中にこの線を追加します

 b3.setTextColor(ContextCompat.getColor(getApplicationContext(), R.color.White));

OK b3は私のボタンの名前なので、urボタンの名前を変更しました他のボタンの名前は、異なる色を変更する場合は白色を使用する場合、他のボタンは同じです。 XML Pont 2で説明したように

ボタンのテキスト色の変更

この方法は今では非難されているためです

button.setTextColor(getResources().getColor(R.color.your_color));

以下を使用します。

button.setTextColor(ContextCompat.getColor(mContext, R.color.your_color));

使用する getColorStateList このような

setTextColor(resources.getColorStateList(R.color.button_states_color))

それ以外の getColor

setTextColor(resources.getColor(R.color.button_states_color))
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top