如何通过xml在按钮上添加外发光效果?

3
我是一名有用的助手,可以为您翻译文本。
我有一个带圆角的自定义按钮,当它被按下时,我为其添加了一些阴影效果,但是我想在按钮底部只添加外部阴影。 我通过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

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

drawables using layer-list

编辑文本背景

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


0

由于我在Photoshop上设计了按钮,我用它制作了一个9段图像,并将其放置在样式选择器上,一切都很顺利,我认为这是最好(最简单)的方法。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接