ボタンを次の状態にすることができるセレクターでボタンを作成しようとしています:
上記の状態によると。ボタンを操作する必要があります:
ボタンは無効化された状態から開始されるため、無効化されたtextColorと無効化されたボタンの背景が必要です。ただし、デフォルトのtextColor(スタイルで指定)と背景画像は表示されません!
これが私のセレクターbutton_selector.xmlです
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:Android="http://schemas.Android.com/apk/res/Android">
<item Android:state_pressed="false"
Android:state_enabled="false"
Android:textColor="#9D9FA2"
Android:drawable="@drawable/button" />
<item Android:state_pressed="true"
Android:state_enabled="true"
Android:drawable="@drawable/button_pressed"/>
<item Android:state_pressed="true"
Android:state_enabled="false"
Android:textColor="#9D9FA2"
Android:drawable="@drawable/button"/>
<item Android:state_pressed="false"
Android:state_enabled="true"
Android:drawable="@drawable/button"/>
</selector>
そして、これは私のlayout.xmlでの私のボタン宣言です
<Button Android:id="@+id/reserve_button"
Android:text="@string/reserve_button"
Android:layout_width="120dp"
Android:layout_height="40dp"
Android:layout_marginTop="10dp"
Android:layout_marginLeft="20dp"
Android:paddingRight="15dp"
Android:layout_gravity="left"
style="@style/buttonStyle"
Android:background="@drawable/button_selector" />
最後に、これが私のスタイルです(デフォルトのtextColorが設定されています)
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="buttonStyle">
<item name="Android:textStyle">bold</item>
<item name="Android:textColor">#282780</item>
<item name="Android:textSize">18sp</item>
</style>
</resources>
助けてください!
また、さまざまな状態を識別するテキストの色に対して ColorStateList
を作成する必要があります。
以下をせよ:
res\color
のような名前の別のXMLファイルをtext_color.xml
に作成します。
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:Android="http://schemas.Android.com/apk/res/Android">
<!-- disabled state -->
<item Android:state_enabled="false" Android:color="#9D9FA2" />
<item Android:color="#000"/>
</selector>
style.xml
に、次のようにそのtext_color.xml
ファイルへの参照を配置します。
<style name="buttonStyle" parent="@Android:style/Widget.Button">
<item name="Android:textStyle">bold</item>
<item name="Android:textColor">@color/text_color</item>
<item name="Android:textSize">18sp</item>
</style>
これで問題が解決するはずです。
1./res /フォルダーにカラーフォルダーを作成し、xmlでカラーフォルダーを作成します。
text_color_selector.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:Android="http://schemas.Android.com/apk/res/Android">
<!-- disabled state -->
<item Android:state_enabled="false" Android:color="#776678" />
<item Android:color="#ffffff"/>
</selector>
2.Now xmlレイアウトを作成:
<Button
Android:id="@+id/button_search"
Android:layout_width="652dp"
Android:layout_height="48dp"
Android:layout_alignParentLeft="true"
Android:layout_alignParentTop="true"
Android:layout_marginTop="18dp"
Android:background="@Android:color/transparent"
Android:text="Hello Bhaskar"
Android:textColor="@color/text_color_selector"/>
最も簡単な解決策は、私が見たようにボタンの背景画像とボタンにカラーフィルターを設定することです here
次のようにできます:
if ('need to set button disable')
button.getBackground().setColorFilter(Color.GRAY, PorterDuff.Mode.MULTIPLY);
else
button.getBackground().setColorFilter(null);
私が誰かを助けたことを願っています...