簡體   English   中英

按下時將按鈕背景從透明更改為彩色

[英]Change button background from transparent to colored when pressed

我的應用程序中有一些帶有透明背景的按鈕。 現在,我想自定義它們以保持透明背景,但是當按下它們時,背景應該變成綠色。

我知道在SO上有很多關於自定義按鈕的主題,我已經閱讀了其中的一些主題,也有很多來自Google的教程。 盡管這看起來很容易,但我無法使其正常工作。

這是我的按鈕的示例代碼:

<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 ,其中我定義了不同按鈕狀態的背景顏色更改:

<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文件夾中。

在我的應用中,按鈕正確地獲得了默認的透明背景,但是當聚焦或按下時,該背景色都不會變為綠色。

試試這個可能對你有幫助,

<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" android:drawable="@color/LightGreen" /> <!--pressed --> 
<item android:drawable="@android:color/transparent" /> <!-- Normal -->
</selector>

使用選擇器

<?xml version="1.0" encoding="utf-8"?>

<item android:drawable="@drawable/numpad_button_bg_selected" android:state_selected="true"></item>
<item android:drawable="@drawable/numpad_button_bg_pressed" android:state_pressed="true"></item>
<item android:drawable="@drawable/numpad_button_bg_normal"></item>

接着

<Button
 android:id="@+id/button1"
 android:background="@drawable/Selector File Name"
 android:layout_width="200dp"
 android:layout_height="126dp"
 android:text="Hello" />

暫無
暫無

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

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