我的應用中有一些透明背景的按鈕。現在,我想定製它們來保持透明背景,但是當它們被按下時,背景應該變成綠色。將按鈕背景從透明變爲彩色時按下
我知道這裏有很多關於自定義按鈕的主題,我收到了其中幾個主題,還有很多來自谷歌的教程。雖然這看起來很容易,但我沒有得到它的工作。
這是我的按鈕的示例代碼:
<Button
android:id="@+id/accept_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:background="@drawable/button_state"
android:text="@string/btnaccept"
android:textStyle="bold" />
這是選擇XML文件buton_state.xml
在那裏我已經定義了diferent按鈕狀態的背景顏色變化:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!-- Button focused and pressed-->
<item android:state_pressed="true"
android:state_focused="true" >
<shape>
<solid
android:color="@color/LightGreen" />
</shape>
</item>
<!-- Button Default-->
<item android:state_pressed="false"
android:state_focused="false" >
<shape>
<solid
android:color="@android:color/transparent" />
</shape>
</item>
</selector>
這文件在res/drawable文件夾中。
在我的應用程序中,按鈕可以正確地獲得默認的透明背景,但是在聚焦或按下時,此背景顏色不會變爲綠色。
我不知道爲什麼,但我嘗試了類似的方式,並沒有工作......但現在它工作。做得好! – masmic