【问题标题】:Change button background from transparent to colored when pressed按下时将按钮背景从透明更改为彩色
【发布时间】:2014-09-05 16:28:07
【问题描述】:

我的应用中有一些带有透明背景的按钮。现在,我想自定义它们以保持透明背景,但是当按下它们时,背景应该变成绿色。

我知道这里有很多关于自定义按钮的主题,我已经阅读了其中的几个,还有很多来自谷歌的教程。尽管这似乎是一项简单的任务,但我并没有让它发挥作用。

这是我的按钮的示例代码:

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

在我的应用中,按钮正确地获得了默认的透明背景,但是当聚焦或按下时,此背景颜色不会变为绿色。

【问题讨论】:

    标签: android


    【解决方案1】:

    试试这个可能对你有帮助,

    <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>
    

    【讨论】:

    • 我不知道为什么,但我已经尝试过与此类似的方法并且没有工作......但现在它正在工作。干得好!
    【解决方案2】:

    使用选择器

    <?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" />
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-04-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-02
      • 1970-01-01
      • 2014-01-04
      相关资源
      最近更新 更多