XML中的自定义按钮

时间:2013-10-03 11:54:22

标签: android xml android-ui

我制作了这个XML文件来自定义一个按钮

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

<corners android:radius="10dip" />

<gradient
    android:angle="90"
    android:centerColor="#0043E1"
    android:centerY="0.4"
    android:endColor="#6495ED"
    android:startColor="#6495ED"
    android:type="linear" />

</shape>

我应该添加什么来使状态焦点并按下?按下状态的渐变颜色,以及聚焦状态的另一种颜色?

3 个答案:

答案 0 :(得分:4)

您需要为按钮

编写选择器
<?xml version="1.0" encoding="utf-8"?>
  <selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/button_normal_color" android:state_focused="true"></item>
    <item android:drawable="@drawable/button_focus_color" android:state_pressed="true">/item>
    <item android:drawable="@drawable/button_normal_color"></item>
  </selector>

将此xml设置为背景按钮

答案 1 :(得分:2)

请参考本教程,了解如何创建适当的drawable-xml文件以允许按钮的不同状态:

http://undertowsam.wordpress.com/2012/04/23/design-custom-background-and-button-for-android-using-xml/

答案 2 :(得分:2)

button_selector.xml文件夹中创建drawable,如下所示:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_focused="false"
        android:state_pressed="false" android:drawable="@drawable/image_normal" />
<item android:state_focused="false"
        android:state_pressed="true" android:drawable="@drawable/image_pressed" />
<item android:state_focused="true"
        android:state_pressed="false" android:drawable="@drawable/image_focused" />
</selector>

然后创建两个xml的一个用于按下,另一个用于聚焦,因为您已创建已经说image_pressed.xmlimage_focused.xml