RippleDrawable 的简单使用
来源:互联网 发布:淘宝线下代购 编辑:程序博客网 时间:2024/05/16 05:46
RippleDrawable 就是一个自定义触摸反馈动画。是在 Android 5.0 时推出的动画效果。为了兼容低版本,可以在将 <ripple> 元素定义在 drawable-v21 目录下;
效果如下:
首先定义一个 StateListDrawable 资源;
button_default.xml :
<?xml version="1.0" encoding="utf-8"?><selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_enabled="false" android:drawable="@drawable/disabled" /> <item android:state_pressed="true" android:drawable="@drawable/selected" /> <item android:state_focused="true" android:drawable="@drawable/selected" /> <item android:drawable="@drawable/fdefault" /></selector>
需要注意 <selector> 时有序的。Android在遍历烈表时,会返回第一个状态完全匹配的 Drawable 。所以将常规状态放在烈表的最底部。
使用一些动画触摸反馈修饰按钮示例。使用 <ripple> 元素定义 XML (在 drawable-v21目录下),可用于构造 RippleDrawable;
background_button.xml :
<?xml version="1.0" encoding="utf-8"?><ripple xmlns:android="http://schemas.android.com/apk/res/android" android:color="#0CC"> <!--显示默认的 drawable--> <item android:drawable="@drawable/button_default" /> <!--匹配默认值的波纹效果剪切遮罩--> <item android:id="@android:id/mask" android:drawable="@drawable/button_default" /></ripple>
增加尺寸的缩放效果(res/animator 目录下);
button_press.xml :
<?xml version="1.0" encoding="utf-8"?><selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_enabled="true" android:state_pressed="true"> <set android:ordering="together"> <objectAnimator android:duration="@android:integer/config_shortAnimTime" android:propertyName="scaleX" android:valueTo="0.8" android:valueType="floatType" /> <objectAnimator android:duration="@android:integer/config_shortAnimTime" android:propertyName="scaleY" android:valueTo="0.8" android:valueType="floatType" /> </set> </item> <item> <set android:ordering="together"> <objectAnimator android:duration="@android:integer/config_shortAnimTime" android:propertyName="scaleX" android:valueTo="1.0" android:valueType="floatType" /> <objectAnimator android:duration="@android:integer/config_shortAnimTime" android:propertyName="scaleY" android:valueTo="1.0" android:valueType="floatType" /> </set> </item></selector>
虽然 XML 结构使用和前面的 button_default.xml 相同的 <seletor>,但是在 res/animator 目录下,表示动画器实例而非 Drawable 的状态列表集合。
content_main.xml :
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" app:layout_behavior="@string/appbar_scrolling_view_behavior" tools:context="com.crazy.bitmapxfermode.MainActivity" tools:showIn="@layout/activity_main"> <Button android:text="My Button" android:background="@drawable/background_button" android:stateListAnimator="@animator/button_press" android:layout_width="wrap_content" android:layout_height="wrap_content" /></RelativeLayout>
1 0
- RippleDrawable 的简单使用
- RippleDrawable 的简单使用
- rippleDrawable的要点解释
- RippleDrawable
- RippleDrawable
- RippleDrawable
- 使用RippleDrawable来使UI点击产生水波纹效果
- [Android] RippleDrawable
- 可能是布局文件的问题 java.lang.ClassNotFoundException: android.graphics.drawable.RippleDrawable
- AndroidMaterialDesign动画之RippleDrawable
- MaterialDesign之RippleDrawable
- Android5.x:RippleDrawable + CardView
- RippleDrawable--点击效果
- android RippleDrawable讲解
- rippleDrawable 触摸反馈
- Material Design之RippleDrawable详解
- Material Design之RippleDrawable详解
- 简单易懂的使用
- Java学习笔记(1):1.概述之计算机语言概述
- 修改lenet网络进行训练(一)
- 6.数据挖掘概念笔记——挖掘频繁模式、关联和相关性术
- c#面试题
- Codeforces Round #297 (Div. 2) 525D Arthur and Walls(dfs)
- RippleDrawable 的简单使用
- LeetCode 258. Add Digits
- Servlet之过滤器
- 从数据库丢失更新想到的一些问题
- 6S大气传输模型修改源码添加、自定义卫星光谱响应(以HJ-1B CCD为例)
- CMake与Make
- 欢迎使用CSDN-markdown编辑器
- 从github上clone项目
- spring+mybatis返回json日期处理(日期全局处理相差8个小时解决方法)