Android:图像按钮或按钮在按下时突出显示效果

时间:2013-05-13 02:50:58

标签: android android-layout animation android-animation android-gui

这时当我按下这些left and right arrow button时,我想在按钮上看到这些类型的效果。默认情况下,Iphone/IOS也会发生同样的事情。

我能做出这种效果吗?

我在这里提到了我想要的照片。

enter image description here

这里我使用了这个xml文件,但没有成功。

button_pressed.xml

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

    <item android:state_pressed="true"><shape>
            <gradient android:angle="180" android:centerColor="#657377" android:endColor="#AFFFFFFF" android:startColor="#FFFFFFFF" android:type="linear"/>

            <corners android:radius="10dp" />
        </shape></item>

</selector>

修改

我使用android:background="@drawable/button_pressed.xml"行,但我没有得到我想要的确实。

试过:

我根据Piyush的答案使用了这个xml文件,但我没有成功,我得到了这个效果。

<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >

    <item>
        <shape android:shape="rectangle" >
            <solid android:color="@color/transparent" />
        </shape>
    </item>
    <item>
        <shape
            android:innerRadiusRatio="4"
            android:shape="ring"
            android:thicknessRatio="9"
            android:useLevel="false" >
            <gradient
                android:endColor="#00000000"
                android:gradientRadius="250"
                android:startColor="#ffffffff"
                android:type="radial" />
        </shape>
    </item>

</layer-list>

我同意顶部和底部部分切割,因为我在此按钮的布局空间有限。我们会在以后思考,但为什么它不像影子和alpha那样生效,而且像我提到的一样呢?

输出:enter image description here

请帮助我如果有任何人对此有所了解。

先谢谢。

2 个答案:

答案 0 :(得分:2)

形状必须径向拉伸,从白色到黑色向外褪色。

试试这个:

<shape
    xmlns:android="http://schemas.android.com/apk/res/android">
    <gradient
        android:startColor="#ffffffff"
        android:endColor="#00000000"
        android:gradientRadius="100"
        android:type="radial"/>
</shape>

此外,您无法直接将其设置为按钮的背景。您必须创建一个选择器可绘制文件,您可以在其中根据按钮的状态指定不同的背景。在这种情况下,只有在按下按钮时才需要设置此背景。选择器看起来像这样:

<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:state_pressed="true" android:drawable="@drawable/button_pressed"/> 
    <item android:state_selected="true" android:drawable="@drawable/button_pressed"/>
    <item android:state_focussed="true" android:drawable="@drawable/button_pressed"/>
    <item android:drawable="@android:color/transparent" />
</selector>

PS:建议在设计Android应用时复制iOS设计。有关Android设计指南,请参阅:http://developer.android.com/design/building-blocks/buttons.html

答案 1 :(得分:0)

可以尝试这个关于圆形,可以相应地设置你的颜色。

<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >

<item>
    <shape android:shape="rectangle" >
        <solid android:color="@color/transparent" />
    </shape>
</item>
<item>
    <shape

        android:shape="ring"
        android:useLevel="false" >
        <gradient
            android:endColor="#00000000"
            android:gradientRadius="200"
            android:startColor="#ffffffff"
            android:type="radial" />
    </shape>
</item>