Android在XML添加单击特效

Android单击水波纹:

直接使用就可以:

 android:foreground="?attr/selectableItemBackground"

drawable资源被占用,可以用foreground来设置单击特效

xml里编写单击水波纹样式是通过ripple标签来编写,具体使用方法暂时不补充,可百度

--------------------------------------------------安卓单击特效:--------------------------------------------------

首先需要在drawable资源文件夹下新建一个自定义xml的名称

然后写两个节点,分别为:
    按下变换颜色示例:
    <item android:drawable="@color/colorAccent" android:state_pressed="false" android:state_focused="false"/>
    <item android:drawable="@android:color/holo_orange_dark" android:state_focused="false"/>

简易写法:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <!--按下时的文本颜色-->
        <item android:state_pressed="true" android:color="#afaeb1">  </item>
    <!--没按下时的文本颜色-->
        <item android:state_pressed="false" android:color="#FFFFFF">  </item>
</selector>

    <!--该资源文件,第一行的item节点,代表调用该资源的默认颜色或图片,第二行的item节点,代表按下以后要显示的颜色或图片-->
    <!--节点里的属性state_focused 代表该控件是否获得焦点 state_pressed 是否按下或触摸
    第一行的item如果state_pressed为true,则说明默认是按下的状态,颜色或者图片默认为按下去的图片
    第二行的state_pressed如果为true,则该控件可以按下,如果为false,则该控件不可按下
    第一行的item如果state_focused为true,已button为例,其它控件可能不同,因为button没有焦点
    设置为true以后该控件颜色默认为按下的颜色,且该控件不可按下(后期测试弹出提示框看是没有特效还是不可按下)
    第二行的设置为false以后可以按下,并且按下的颜色或图片会暂时改变成第二行的资源,如果设置为true以后不可以再按下

    -->

    按下更改图片示例:
<item android:drawable="@drawable/ic_star_black_38dp" android:state_focused="false" android:state_pressed="false"/>
<item android:drawable="@drawable/ic_star_border_black_38dp" android:state_pressed="false"/>

然后到需要有单击特效的控件里增加属性来绑定特效:
        android:background="@drawable/btn_selector2"

其中@drawable/为资源文件夹btn_selector2为特效xml名称

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


    <!--按下状态-->
    <item android:state_pressed="true">
        <shape>
            <solid android:color="#666666" />
            <!--圆角-->
            <corners android:radius="4dip" />
        </shape>
    </item>


    <!--非按下状态-->
    <item>
        <shape>
            <!-- 填充的颜色 -->
            <solid android:color="#F9F9F9" />
            <!-- 设置按钮的四个角为弧形 -->
            <!-- android:radius 弧形的半径 -->
            <corners android:radius="4dip" />
            <!--边框的宽度及颜色-->
            <stroke android:width="1px" android:color="#4b9eff" />
        </shape>
    </item>
</selector>

android:background="@drawable/shape_button"
--------------------------------------------------安卓单击特效结尾---------------------------------------------------

猜你喜欢

转载自blog.csdn.net/a1003434346/article/details/84102507