animation- 动画效果实现(代码中)
1,首先我们看一下如下的代码
- import android.view.animation.LayoutAnimationController;
- import android.view.animation.Animation.AnimationListener;
- import android.view.animation.Transformation;
- import android.view.animation.Animation.AnimationListener;
- import android.view.animation.AlphaAnimation;
- import android.view.animation.TranslateAnimation;
- private Animation myHistoryAnimation;
- private LayoutAnimationController myLayoutControl;
- private AlphaAnimation myHistoryAlphaAnimation;
- private AlphaAnimation myHistoryAlphaAnimationConTime;
- private TranslateAnimation myHistoryTranslateAnimation;
- private AnimationSet myHistoryAnimationSet;
- myHistoryAlphaAnimation = new AlphaAnimation(1, 0);
- myHistoryAlphaAnimationConTime = new AlphaAnimation(1, 1);
- myHistoryAlphaAnimation.setDuration(1000);
- myHistoryAlphaAnimationConTime.setDuration(500);
- myHistoryAnimationSet = new AnimationSet(true);
- /* Vanzo:zhangshuli on: Fri, 20 Mar 2015 14:57:37 +0000
- * modify for v5 calculator
- myHistoryTranslateAnimation = (TranslateAnimation) AnimationUtils.loadAnimation(
- this, R.anim.history_clear_anim);
- */
- myHistoryTranslateAnimation = new TranslateAnimation(
- Animation.RELATIVE_TO_SELF,0f,
- Animation.RELATIVE_TO_SELF,0f,
- Animation.RELATIVE_TO_SELF,0f,
- Animation.RELATIVE_TO_SELF,10f);
- myHistoryTranslateAnimation.setDuration(1000);
- // End of Vanzo: zhangshuli
- myHistoryAnimationSet.setFillAfter(true);
- myHistoryAnimationSet.setAnimationListener(new AnimationListener() {
- @Override
- public void onAnimationStart(Animation arg0) {
- // TODO Auto-generated method stub
- history_clear_choose.setVisibility(View.GONE);
- }
- @Override
- public void onAnimationRepeat(Animation arg0) {
- // TODO Auto-generated method stub
- }
- @Override
- public void onAnimationEnd(Animation arg0) {
- // TODO Auto-generated method stub
- android.util.Log.e("zhangshuli", "set");
- /* Vanzo:zhangshuli on: Fri, 20 Mar 2015 16:17:24 +0000
- * modify for v5 calculator
- if (mDrawerLayout.isDrawerVisible(GravityCompat.END)) {
- mDrawerLayout.closeDrawer(GravityCompat.END);
- }
- */
- // End of Vanzo: zhangshuli
- }
- });
- myHistoryAlphaAnimation.setAnimationListener(new AnimationListener() {
- @Override
- public void onAnimationStart(Animation arg0) {
- // TODO Auto-generated method stub
- }
- @Override
- public void onAnimationRepeat(Animation arg0) {
- // TODO Auto-generated method stub
- }
- @Override
- public void onAnimationEnd(Animation arg0) {
- mHistory.clear();
- mLogic.onClear();
- android.util.Log.e("zhangshuli", "tran1");
- }
- });
- myHistoryAnimationSet.addAnimation(myHistoryTranslateAnimation);
- myHistoryAnimationSet.addAnimation(myHistoryAlphaAnimation);
- myHistoryAnimationSet.addAnimation(myHistoryAlphaAnimationConTime);
- myLayoutControl = new LayoutAnimationController(myHistoryAnimationSet);
- myLayoutControl.setDelay(0.1f);
- // myLayoutControl.setOrder(LayoutAnimationController.ORDER_NORMAL);
- myLayoutControl.setOrder(LayoutAnimationController.ORDER_REVERSE);
- mHistoryDisplayList.setLayoutAnimation(myLayoutControl);
2.从以上的代码中我们可以发现。代码中定义动画的话,有个好处,就是比较灵活,可以根据我们的需要动态的更改动画的时间等属性。当然,你也会看到它代码的重用性非常的糟糕。
1)创建动画:其实就是new一个相应的动画就行了
2)然后就是设置动画的属性值,时间等
- import android.view.animation.AlphaAnimation;
- AlphaAnimation alphaAnimation=new AlphaAnimation( 1f,0.5f);
- //动画时间
- alphaAnimation.setDuration(1000);
- //动画结束以后是否应用,false的话,会返回初始位置
- alphaAnimation.setFillAfter(true);
- //设置动画动作样式
- alphaAnimation.setInterpolator(this,android.R.anim.accelerate_decelerate_interpolator);
其他的也类似
- import android.view.animation.Animation;
- import android.view.animation.TranslateAnimation;
- TranslateAnimation translateAnimation = new TranslateAnimation(
- //第一个参数:相对于父类还是自身比例 第二个其实x坐标
- Animation.RELATIVE_TO_SELF, 0f,
- //起始y坐标
- Animation.RELATIVE_TO_SELF,0f,
- //结束x坐标
- Animation.RELATIVE_TO_SELF,0f,
- //结束y坐标
- Animation.RELATIVE_TO_SELF,10f);
3)如果你仅仅就需要一个简单的动画,那么你只需要在一个控件上start这个动画就行了,如下
- view.startAnimation(myAnimation_Alpha);
4)如果你希望把几个动画进行复合,这时候你需要借助
- myHistoryAnimationSet = new AnimationSet(true);
- myHistoryAnimationSet.addAnimation(myHistoryTranslateAnimation);
AnimationSet 其实就相当于一个动画容器,可以把不同的动画效果合为一个复合动画进行
animation- 动画效果实现(代码中)的更多相关文章
- Android中xml设置Animation动画效果详解
在 Android 中, Animation 动画效果的实现可以通过两种方式进行实现,一种是 tweened animation 渐变动画,另一种是 frame by frame animation ...
- android中设置Animation 动画效果
在 Android 中, Animation 动画效果的实现可以通过两种方式进行实现,一种是 tweened animation 渐变动画,另一种是 frame by frame animation ...
- 模仿百度首页“元宵节汤圆”动图,并实现360°不停旋转(CSS3的animation动画效果)
模仿百度首页“元宵节汤圆”动图,并实现360°不停旋转(CSS3的animation动画效果) 效果图: 切图地址: https://ss1.bdstatic.com/5eN1bjq8AAUYm2zg ...
- 右上角鼠标滑过展开收缩动画效果js代码的演示页面
http://files.cnblogs.com/files/tanlingdangan/top_right.rar.gz 右上角鼠标滑过展开收缩动画效果js代码的演示页面http://www.51x ...
- android Animation 动画效果介绍
Android的animation由四种类型组成 XML中 alpha 渐变透明度动画效果 scale 渐变尺寸伸缩动画效果 translate 画面转换位置移动动画效果 rotate 画面转移旋转动 ...
- ios animation 动画效果实现
1.过渡动画 CATransition CATransition *animation = [CATransition animation]; [animation setDuration:1.0]; ...
- Android Animation动画效果简介
AlphaAnimation 淡入淡出动画 <alpha>A fade-in or fade-out animation. Represents an AlphaAnimation. a ...
- Animation(动画效果)
Ctrl+6打开Animation窗口.选择物体,点击录制,保存录制文件后即为给该物体添加了动画效果. Animation可以修改某时间点的物体位置.大小.材质球上的所有属性.碰撞器等等. 可以通过修 ...
- H5中需要掌握的 ANIMATION 动画效果
CSS3的动画在PC网页上或者APP上用得越来越多,比如H5页面的应用,目前在营销传播上的意义比较大,还有企业官网或者APP主要介绍也用得比较多,当然还有很多地方都用到.所以学习css的动画也迫在眉睫 ...
- UITableview reloadData Animation 动画效果
http://blog.kingiol.com/blog/2013/10/22/uitableview-reloaddata-with-animation/ 运用到UITableview进行重新加载数 ...
随机推荐
- MySQL外键的介绍
在MySQL 3.23.44版本后,InnoDB引擎类型的表支持了外键约束. 1.MySQL中“键”和“索引”的定义相同,所以外键和主键一样也是索引的一种.不同的是MySQL会自动为所有表的主键进行索 ...
- 用Struts2搭建一个登录例子【本人亲测好用】
今天尝试struts2的搭建,遇到不少的问题,终于一一解决,逛了很多地方,最终完成搭建 1.首先要下载struts2的一些组件,我下载的是版本2.3.4.1,Eclipse是4.6版本的.由于版本的不 ...
- MySql免安装版绿化版安装配置,附MySQL服务无法启动解决方案
整理于:https://www.cnblogs.com/cenwei/p/6249856.html 我下载的MySQL版本是:mysql-5.6.15-winx64 一.解压文件 下载好My ...
- 大吉大利,晚饭吃鸡!——accept关闭问题
假期收尾了,学芽子们都军训了.一群张一山和周冬雨在校内晃晃悠悠,说起来春风十里也就军训比较有意思.对于我这种一年追一部剧的人,显然是有点对不住.在我假期任务即将圆满之际,我开始放慢脚步寻找生活的美妙时 ...
- 紫书 例题 9-13 UVa 1220 (最大独立子集)
这里的状态定义的非常的巧妙,d(i, 1)表示以i为根节点且选i的子树的最大独立子集 d(i, 0)表示以i为根节点且不选i的子树的最大独立子集 d(i, 1) = sum{ d(v, 0) | v是 ...
- 【VC++学习笔记三】控件自绘
MFC应用程序中,大部分的控件类型都已经被定制好了,即便是修改,也只是小范围内的修改,而很多情况下,我们又需要对界面进行特殊定制,这时,最好的办法就是用CWnd类进行派生,自己生成新的窗体,在WM_P ...
- PyCharm激活方法
1.激活码激活 1.修改hosts文件 将0.0.0.0 account.jetbrains.com添加到hosts文件最后,windows系统hosts文件路径为:C:\windows\system ...
- python + eclipse + django + postgresql 开发网站(一)
一.配置开发环境 1.安装Python 载地址下:http://www.python.org/getit/
- SFINAE 模板替换失败而非报错的应用
体会这一个例子,检查是否是一个类:P187
- 强制获取序列下一个值/当前值(oracle函数)
原文链接--http://blog.csdn.net/qq525099302/article/details/47146393 为什么要使用函数来获取序列值请看这里 -- 创建获取序列下一个值的函数 ...