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进行重新加载数 ...
随机推荐
- Docker安装配置教程
Docker公开课 1 Docker介绍 1.1 Docker是什么 云计算\云服务 IAAS(基础设施即服务).PAAS(平台即服务).SAAS(软件即服务) Docker到底是什么呢? Docke ...
- Android ViewPager实现多个图片水平滚动
1.示意图 2.实现分析 (1).xml配置 <!-- 配置container和pager的clipChildren=false, 并且指定margi ...
- Tensorflow 函数学习笔记
A: A:## tf.argmax(A, axis).eval() 输出axis维度上最大的数的索引 axis=0:列,axis=1:行 A:## tf.add(a,b) 创建a+b的计算图 A:# ...
- python 爬虫使用
python爬虫架构 Python 爬虫架构主要由五个部分组成,分别是 调度器.URL管理器.网页下载器.网页解析器.应用程序. 调度器:相当于一台电脑的CPU,主要负责调度URL管理器.下载器.解析 ...
- 一个Web报表项目的性能分析和优化实践(五):重构有助于性能优化么?
项目从初次开发到现在,已经快3年了.期间,有N个工程师参与过. 需求方面:增加减少,反反复复,无数次:人力方面:增加减少,不稳定:时间方面:功能开发着急上线,Bug开发紧急修复. 因此,代码臃肿,问题 ...
- 【Codeforces Round #459 (Div. 2) C】The Monster
[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 左括号看成1 右括号看成-1 设置l,r表示前i个数的和的上下界 遇到 左括号 l和r同时加1 遇到右括号 同时减1 遇到问号 因为 ...
- 【Henu ACM Round#18 A】 Multiplication Table
[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 遍历i从1..n 看看x%i==0以及x/i<=n是否成立. [代码] #include <iostream> u ...
- HTML5:标记文字
文本层面的元素(简称文本元素).把这些元素加入文本其中,也就引入了结构和含义. HTML5规范明白指出:使用元素应该全然从元素的语义出发.但这类元素中有些元素的含义很明白,有些则比較含糊. 在元素的使 ...
- MyReport.Form表单引擎
MyReport.Form表单引擎.主要提供表单模板的设计以及表单模板的预览填报等功能集合. 支持文本框.选择框.数字框.日期框.图片框.组合框.弹出框等经常使用控件. watermark/2/tex ...
- css 浮动 绝对定位 和 相对定位
html是按照文件流(文档流)的方式加载的,但是全部是文档流的话,很多好看的样式是实现不了的,所以出现了浮动,相对定位,绝对定位的概念. 一.首先,按照文档流和非文档流来分类: ①文档流:就是按照上下 ...