【问题标题】:Change Button Background when pressed - Android [duplicate]按下时更改按钮背景 - Android [重复]
【发布时间】:2014-02-27 08:36:23
【问题描述】:

我有一个圆形按钮。我想要做的是在按下时更改按钮颜色。有人可以告诉我如何将代码添加到背景 xml 中吗?谢谢。

<shape 
android:shape="rectangle" android:padding="10dp">
<solid android:color="#c0dfba"/>

 <corners
 android:bottomRightRadius="5dp"
 android:bottomLeftRadius="5dp"
 android:topLeftRadius="5dp"
 android:topRightRadius="5dp"/>

</shape>

【问题讨论】:

    标签: android xml button colors


    【解决方案1】:

    XML 创建为res/drawable/button.xml

    <?xml version="1.0" encoding="utf-8"?>
    <selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true" >
        <shape>
            <solid
                android:color="#343434" />
            <stroke
                android:width="1dp"
                android:color="#171717" />
            <corners
                android:radius="3dp" />
            <padding
                android:left="10dp"
                android:top="10dp"
                android:right="10dp"
                android:bottom="10dp" />
        </shape>
    </item>
    <item>
        <shape>
            <gradient
                android:startColor="#343434"
                android:endColor="#171717"
                android:angle="270" />
            <stroke
                android:width="1dp"
                android:color="#171717" />
            <corners
                android:radius="4dp" />
            <padding
                android:left="10dp"
                android:top="10dp"
                android:right="10dp"
                android:bottom="10dp" />
        </shape>
       </item>
    </selector>
    

    并将您的Button 设置为Background 之类的

      <Button
        android:id="@+id/btnValidate"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:background="@drawable/button"
        android:text="SOS Trasition"
        android:textColor="@android:color/white"
        android:textSize="16sp"
        android:textStyle="bold" />
    

    如果你想更改Button Text Color 然后在res/color/button_text.xml 创建XML 文件:

    <?xml version="1.0" encoding="utf-8"?>
    <selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true"
          android:color="#ffff0000"/> <!-- pressed -->
    <item android:state_focused="true"
          android:color="#ff0000ff"/> <!-- focused -->
    <item android:color="#ff000000"/> <!-- default -->
    </selector>
    

    并设置此布局XML 会将颜色列表应用到View

    <Button
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="@string/button_text"
    android:textColor="@color/button_text" />
    

    【讨论】:

    • 它正在工作!谢谢@MD!检查并投票获得收益。 :)
    【解决方案2】:

    如果您只想更改按钮的颜色,那么您也可以这样做。但是这个内容只在运行时使用。

    我知道你是通过 XML 文件询问的,但这很简单,不过这只是一个简单的建议。

    imageview.setColorFilter(Color.RED);
    

    或者您也可以传递任何颜色代码,例如

    imageView.setColorFilter(0xFFFF3D60, PorterDuff.Mode.MULTIPLY);
    

    【讨论】:

      【解决方案3】:

      在drawable中创建一个xml文件并复制以下行..确保根据需要更改颜色.. 并将 xml 文件设置为按钮的背景 android:background="你的 xml"

      <?xml version="1.0" encoding="utf-8"?>
      
      <selector xmlns:android="http://schemas.android.com/apk/res/android">
      <item android:state_pressed="true" android:color="**your desired color when pressed**" />
      <item android:color=" **default color when not pressed**"  />
      </selector>
      

      【讨论】:

      • 不完整的答案...
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-02-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-01
      • 1970-01-01
      • 2013-06-02
      相关资源
      最近更新 更多