如何通过按钮上的xml进行外部发光?

时间:2014-02-10 17:16:21

标签: android xml button glow

我有一个带圆角的自定义按钮,当它被按下时我放了一些阴影但是我想在按钮的底部做一​​个外部阴影,我通过xml制作可绘制的,所以如果发光可以这样会很棒。 这些是代码的相关部分:

button_pressed_shadows.xml

<?xml version="1.0" encoding="UTF-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
    <item>
        <shape android:shape="rectangle" >
           <gradient 
               android:startColor="@color/black_overlay"
               android:endColor="@color/btn_login"
               android:angle="270"/>
           <corners android:radius="4dip" />
        </shape>
    </item>

    <item               
        android:top="2px">
        <shape android:shape="rectangle"> 
            <solid android:color="@color/btn_login"/>
            <corners android:radius="4dip" />
         </shape>
    </item>
</layer-list>

style_login.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true"
          android:drawable="@drawable/button_pressed_shadows" /> <!-- pressed -->
    <item android:state_focused="true"
          android:drawable="@drawable/button_focused" /> <!-- focused -->
    <item android:state_hovered="true"
          android:drawable="@drawable/button_focused" /> <!-- hovered -->
    <item android:drawable="@drawable/button_login" /> <!-- default -->
</selector>

2 个答案:

答案 0 :(得分:0)

由于我在photoshop上有按钮设计,我用它制作了一个9补丁图像,并把它放在样式选择器上,一切都很顺利,认为是更好(最简单)的方式。

答案 1 :(得分:0)

使用图层列表时,您可以使用适当的颜色组合和填充,使其像发光或阴影一样。

drawables using layer-list

edit_text_background

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item>
    <shape android:shape="rectangle" >
        <solid android:color="#fff" />

        <corners android:radius="4dp" />
    </shape>
</item>
<item android:bottom="1dp">
    <shape android:shape="rectangle" >
        <corners android:radius="4dp" />

        <stroke
            android:width="1dp"
            android:color="#dadad7" />

        <solid android:color="#fff" />
    </shape>
</item>