简单的窗口抖动——Animation
2015-07-14 14:30
274 查看
在res 文件夹下增加 文件夹 anim , anim文件夹中的 anim.xml文件
fromXDelta 属性值 的缺省单位 为px,但在avd中显示大小还是有点差值
anim文件夹中的 cycle.xml文件
mainActivity.class 中:
rel 不一定非得是RelativeLayout 控件, 只需要设置了width、 height 并可以显示出来 就可以看见抖动效果
fromXDelta 属性值 的缺省单位 为px,但在avd中显示大小还是有点差值
<set xmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="@anim/cycle" <span style="white-space:pre"> </span>------------------->引用 cycle.xml 文件 > <translate android:fromXDelta="0" android:toXDelta="-10" android:fromYDelta="0" android:toYDelta="-10" android:duration="300"/> <translate android:fromXDelta="0" android:toXDelta="10" android:fromYDelta="0" android:toYDelta="-10" android:startOffset="300" android:duration="300"/> <translate android:fromXDelta="0" android:toXDelta="-10" android:fromYDelta="0" android:toYDelta="10" android:startOffset="600" android:duration="300"/> <translate android:fromXDelta="0" android:toXDelta="10" android:fromYDelta="0" android:toYDelta="10" android:startOffset="900" android:duration="300"/> </set>
<!-- 每一个translate 标签就是一个“晃动”动作,只需要 设置该动作的发生时间(startOffset属性) 就可以连续晃动产生抖动效果 <translate android:fromXDelta="0" android:toXDelta="10" ——————————> x坐标 formXDelta: 组件晃动的起始位置; 0 表示控件的当前位置 toXDelta: 组件相对于起始位置的终止位置, (formXDelta-toXDelta)的值为正先向左晃动, 为负则先向右晃动 |formXDelta - toXDelta| 的值为 晃动的最大幅度 缺省单位 px *左右晃动, toXDelte 属性影响 晃动幅度和 晃动开始方向 android:fromYDelta="0" android:toYDelta="10" ——————————> x坐标 formYDelta: 组件晃动的起始位置; 0 表示控件的当前Y位置 toYDelta: 组件晃动的终点位置(相对起始位置) ; (formXDelta - toXDelta)的值 为正先向上晃动, 为负则先向下晃动 | formXDelta - toXDelta|的值为 晃动的幅度 上下晃动 ,最后会回到组件动作前的位置;toYDelte 属性限定了 晃动幅度和 晃动开始方向 android:startOffset="900" ——————————> 动作开始时间 900毫秒时发生(startOffset属性值是相对于事件发生时开始计算) android:duration="300" ——————————> 动作持续时间 300毫秒 /> -->
anim文件夹中的 cycle.xml文件
<cycleInterpolator xmlns:android="http://schemas.android.com/apk/res/android" android:cycles="1" /> <!-- cycleInterpolator 标签用于设置 次数/S android:cycles="次数" -->
mainActivity.class 中:
rel 不一定非得是RelativeLayout 控件, 只需要设置了width、 height 并可以显示出来 就可以看见抖动效果
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); rel = (RelativeLayout)findViewById(R.id.rel); bt = (Button)findViewById(R.id.bt); bt.setOnClickListener(new View.OnClickListener(){ @Override public void onClick(View v) { Animation ai = AnimationUtils.loadAnimation(MainActivity.this,R.anim.alpha); <span style="white-space:pre"> </span>Animation 不能直接通过new创建实例对象 ,需要通过 AnimationUtils调用static方法创建Animation对象 rel.startAnimation(ai); } }); }
相关文章推荐
- windows pip安装提示ascii code无法解析
- 水平滑块儿库
- 6.c语言中的条件语句
- iOS开发~CocoaPods使用详细说明
- [转载] Linux五种IO模型
- 什么是ajax,ajax原理是什么 ,优缺点是什么
- CentOS6.5下升级php
- 快速排序的Java代码
- 页面加载等待效果1
- mysql count(),sum()等作为条件查询
- 考试周过去了,我的大一也结束了。 以前的苦涩与心酸都已随着时间一去不复返 ,现在心中充满了对未来的向往与期待。
- iOS开发 中捕获程序崩溃日志
- java 初学者基础教学
- OAF_开发系列18_实现OAF页面跳转setForwardURL / forwardImmediately(案例)
- IOS开发-摇一摇效果
- Android 定时任务
- oracle clob ERROR org.hibernate.util.JDBCExceptionReporter - ORA-00932: 数据类型不一致: 应为 -, 但却获得 CLOB
- nginx 安装手记
- Leetcode_94 Binary Tree Inorder Traversal
- 5.c语言逻辑运算与算术运算