我的按钮的Holo主题和自定义背景

时间:2013-05-14 12:47:08

标签: android android-holo-everywhere

当用户按下按钮时,我在按钮上添加蓝色颜色时遇到一些问题。它适用于此按钮背景中没有可绘制但在我的情况下,我必须添加自定义背景,当用户点击按钮时我想要蓝色。 这是我的代码

<Button
    android:id="@+id/create_profile"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/info_account"
    android:layout_centerHorizontal="true"
    android:background="@drawable/btn_create_profile" />

2 个答案:

答案 0 :(得分:1)

蓝色不是平台为您绘制的东西。标准按钮具有可绘制的选择器作为其背景,其涉及视图的一组图像。因此,对于按钮,例如它是标准按钮图像,按下按钮图像(上面绘制了蓝色覆盖图),禁用(半透明)等。 Button知道它的当前状态并显示适当的图像。

所以你要做的就是自己画一个按下的按钮并创建一个这样的选择器:

<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item  android:state_pressed="true" android:drawable="@drawable/your_pressed_button/>
    <item  android:drawable="@drawable/your_normal_button/>

</selector>

我认为值得一读Drawable Resources。您还可以找到生成按钮状态的示例here

答案 1 :(得分:0)

你应该自定义drawable:

为此,您只需在drawable文件夹中创建一个xml文件并写入:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >

  <item  android:state_pressed="false"
       android:drawable="@drawable/ic_back" />

  <item android:state_pressed="true"
      android:drawable="@drawable/ic_back_pressed" />

  <item android:state_focused="true"
      android:drawable="@drawable/ic_back_pressed" />

</selector>

现在将此drawable设置在按钮的背景中。

这里,在正常状态下后台id ic_back 并且按下并聚焦状态背景是ic_back_pressed

用于创建可绘制的可绘制形状(例如,如果您想将纯色背景作为可绘制形状,则可以here ...)