簡體   English   中英

按下時更改按鈕背景

[英]Change button background when pressed

我想更改單擊按鈕時的背景。 我試圖使用選擇器。 但這沒有用。 這是選擇器(add_grp_slctr.xml):

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
     <item android:state_focused="true" android:drawable="@drawable/add_grp_d"/>
     <item android:state_pressed="true" android:drawable="@drawable/add_grp_d" />
     <item android:drawable="@drawable/add_grp" /> 
</selector>

和按鈕:

       <Button
            android:id="@+id/addGrpBtn"
            android:layout_width="55dp"
            android:layout_height="45dp"
            android:layout_gravity="center"
            android:background="@drawable/add_grp_slctr"
            android:onClick="addGrpDialogOpen" />

add_grp_d和add_grp是images(png)。

我嘗試了類似的代碼,默認情況下將為白色,當按下按鈕的onclick時為黑色:

// * * *這是將在可繪制文件夾中聲明的btn_selector ***

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

並在button.xml上將其稱為->

 android:background="@drawable/btn_selector"

希望這會有所幫助..::)

一次瀏覽http://developer.android.com/guide/topics/resources/drawable-resource.html#StateList 同樣,僅當您使用硬件鍵盤為按鈕聚焦時,state_focussed for button才起作用。 至於你的情況

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
     <item android:state_pressed="false" android:state_selected="false" android:drawable="@drawable/button_default"/>
     <item android:state_pressed="true" android:state_selected="false" android:drawable="@drawable/button_default" />
     <item android:state_pressed="false" android:state_selected="true" android:drawable="@drawable/button_selected"/>
     <item android:state_pressed="true" android:state_selected="true" android:drawable="@drawable/button_selected" />
     <item android:drawable="@drawable/button_selected" /> 
</selector>

使用您的選擇器

像這樣改變你的代碼

 <?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
 <item android:state_focused="true" android:drawable="@drawable/add_grp_d"/>
 <item android:state_pressed="true" android:drawable="@drawable/add_grp" />
 <item android:drawable="@drawable/add_grp_d" /> 
 </selector>

我的密碼

<item android:drawable="@drawable/shadow_design_click" android:state_pressed="true"/>
<item android:drawable="@drawable/shadow_design" android:state_focused="true"/>
<item android:drawable="@drawable/shadow_design"/>

</selector>

我認為您應該稍微更改選擇器。 在此處檢查此答案。

如果您只想更改按鈕的顏色,而不是傳遞cuastom XML文件,則可以嘗試以下方式。

Button lineColorCode = (Button)findViewById(R.id.button1);

現在,在按鈕的click事件中使用以下代碼。

int color = Color.parseColor("#AE6118"); //The color u want             
lineColorCode.setColorFilter(color);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM