Android 动画具体解释View动画
为了让用户更舒适的在某些情况下,利用动画是那么非常有必要的。Android在3.0一旦支持两种动画Tween动漫Frame动画。Tween动画支持简单的平移,缩放,旋转,渐变。Frame动画就像Gif图通过一系列图片来模拟动画效果,而在Android 3.0以后引入了新的动画就是属性动画(property
animation)。Android 分享一个简单有趣的动画效果 就是利用了属性动画。
今天我们主要来学习Tween动画也就是View动画。
View 动画仅仅能应用于View对象,并且仅仅支持一部分属性。并且对于View
动画,它仅仅是改变了View对象绘制的位置。而没有改变View对象本身,比方当前有一个button的坐标是(200,200)通过平移动画移动到(200,500),可是你点击移动后的button是没有不论什么效果,例如以下图:
知道了这个大前提我们就開始了解View动画的基本使用方法吧。动画能够用java代码写也能够用xml写
1,平移动画
<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="3000"
android:fillAfter="true"
android:fromXDelta="0%"
android:fromYDelta="0%"
android:repeatCount="10"
android:repeatMode="restart"
android:toXDelta="0%"
android:toYDelta="70%" > </translate>
duration动画时间。fillAfter保持动画结束后状态,fromXDelta起始X位置,fromYDelta起始Y位置,repeatCount反复次数,repeatMode反复模式 restart为正序 reverse为倒序,在java代码中用
Animation animation =AnimationUtils.loadAnimation(this, R.anim.tran_btn);
view.startAnimation(animation);
<span style="font-size:18px;">Animation animation2 = new TranslateAnimation(0, 20, 0, 0);
animation2.setDuration(2000);
animation2.setRepeatCount(10);
animation2.setRepeatMode(Animation.RESTART);
button.startAnimation(animation2);</span>
new TranslateAnimation(fromXDelta, toXDelta, fromYDelta, toYDelta)
看參数相信大家也都知道意思了
2。旋转动画
<? xml version="1.0" encoding="utf-8"?>
<rotate xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="3000"
android:fromDegrees="0"
android:toDegrees="360"
android:pivotX="50%"
android:pivotY="50%"
>
</rotate>
大致同上。pivot旋转的中心点.
Animation animation2 = new RotateAnimation(0, 360, 0, 0);
animation2.setDuration(2000);
button.startAnimation(animation2);
3,渐变动画
<span style="font-size:18px;"><? xml version="1.0" encoding="utf-8"?>
<alpha xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="2000"
android:fromAlpha="1.0"
android:toAlpha="0.0" > </alpha></span>
事实上看通一个剩下的都是触类旁通
<span style="font-size:18px;">Animation animation = new AlphaAnimation(1, 0);
animation.setDuration(3000);
button.startAnimation(animation);</span>
4。缩放动画
<?xml version="1.0" encoding="utf-8"?>
<scale xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="2000"
android:fromXScale="0.0"
android:fromYScale="1.0"
android:pivotX="50%"
android:pivotY="50%"
android:toXScale="1.0"
android:toYScale="1.0" > </scale>
ok,这下四种基本动画都简单的结束了一下。可是我们有时可能会有一些特殊的需求。比方让播放一组动画,这时我们能够使用set
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" > <rotate
android:duration="2000"
android:fromDegrees="0"
android:pivotX="50%"
android:pivotY="50%"
android:toDegrees="360" /> <alpha
android:duration="2000"
android:fromAlpha="1.0"
android:toAlpha="0.0" /> </set>
这是旋转于渐变同一时候播放,假设依次播放的话仅仅需加上startOffset
<? xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" > <rotate
android:duration="2000"
android:fromDegrees="0"
android:pivotX="50%"
android:pivotY="50%"
android:toDegrees="360" /> <alpha
android:duration="2000"
android:fromAlpha="1.0"
android:startOffset="2000"
android:toAlpha="0.0" /> </set>
这样就能够依次播放。但有时我们想要一下特殊的效果比方说动画的加速度,这时候我们能够用上interpolator,animation.setInterpolator(new AccelerateInterpolator());
AccelerateDecelerateInterpolator 在动画開始与结束的地方速率改变比較慢。在中间的时候加速
AccelerateInterpolator 在动画開始的地方速率改变比較慢。然后開始加速
AnticipateInterpolator 開始的时候向后然后向前甩
AnticipateOvershootInterpolator 開始的时候向后然后向前甩一定值后返回最后的值
BounceInterpolator 动画结束的时候弹起
CycleInterpolator 动画循环播放特定的次数,速率改变沿着正弦曲线
DecelerateInterpolator 在动画開始的地方快然后慢
LinearInterpolator 以常量速率改变
OvershootInterpolator 向前甩一定值后再回到原来位置
谢谢耐心的看完。不积跬步无以至千里,有什么疑问的话也能够留言。。
Android 动画具体解释View动画的更多相关文章
- Android图文具体解释属性动画
Android中的动画分为视图动画(View Animation).属性动画(Property Animation)以及Drawable动画.从Android 3.0(API Level 11)開始. ...
- android 动画基础绘——view 动画(二)[补]
前言 这个是对view 动画的补充,是一些view 动画的特殊使用场景. 回顾第一篇关于view 动画的,我介绍到view的动画都是针对元素本身的. 当我们开发view动画的时候,我们看到几个元素在做 ...
- android 动画基础绘——view 动画
前言 对android 动画的整理,android 动画分为view动画(也叫补间动画),帧动画,属性动画. 看到这几个概念,让我想起了flash这东西.如果需要查各种动画具体的含义,那么可以去查询f ...
- Android 动画具体解释Frame动画 (Drawable Animation)
Frame动画像gif画画,通过一些静态的图片,以实现动画效果. Android sdk该AnimationDrawable就是专门针对Frame动画,当然Frame动画也可在java代码或者xml中 ...
- 虾扯蛋:Android View动画 Animation不完全解析
本文结合一些周知的概念和源码片段,对View动画的工作原理进行挖掘和分析.以下不是对源码一丝不苟的分析过程,只是以搞清楚Animation的执行过程.如何被周期性调用为目标粗略分析下相关方法的执行细节 ...
- android动画具体解释四 创建动画
使用ValueAnimator进行动画 通过指定一些int, float或color等类型的值的集合.ValueAnimator 使你能够对这些类型的值进行动画.你需通过调用ValueAnimator ...
- Android动画-View动画
View动画 Android动画分为三类:View动画,帧动画,和属性动画.帧动画也是View动画的一种. View动画的作用对象是View,之所以强调这一点是因为其作用对象有别于Android的另一 ...
- android动画具体解释二 属性动画原理
property动画是一个强大的框架,它差点儿能使你动画不论什么东西. 你能够定义一个动画来改变对象的不论什么属性,不论其是否被绘制于屏幕之上. 一个属性动画在一定时间内多次改变一个属性(对象的一个字 ...
- Android 动画效果 及 自定义动画
1. View动画-透明动画效果2. View动画-旋转动画效果3. View动画-移动动画效果4. View动画-缩放动画效果5. View动画-动画效果混合6. View动画-动画效果侦听7. 自 ...
随机推荐
- 学习android内核 -- 内存管理相关
Android内存管理: 1.当应用程序关闭以后,后台对应的进程并没有真正的退出(处于休眠状态,一般不占用系统CPU的资源),这是为了下次再启动的时候能快速启动. 2.当系统内存不够时,AmS会主动根 ...
- poj 3415 Common Substrings
题目链接:http://poj.org/problem?id=3415 题目分类:后缀数组 题意:给出两个串和一个数字k,求两个串的公共字串大于等于k的数目 代码: //#include<bit ...
- 在WPF的WebBrowser控件中抑制脚本错误
原文:在WPF的WebBrowser控件中抑制脚本错误 今天用WPF的WebBrowser控件的时候,发现其竟然没有ScriptErrorsSuppressed属性,导致其到处乱弹脚本错误的对话框,在 ...
- copy算法
copy------强化效率无所不用其极 copy(first,last,result)算法可将输入区间[first,last)内的元素拷贝到输出区间[result,result+(last-f ...
- 利用json获取天气信息
天气预报信息获取是利用json获取的,网上有非常多资源,源码.因为上面涉及到非常多天气信息,包含湿度,出行建议等,以及加入了全部城市代码的资源包.为了练手了解json的原理.我仅获取诚笃城市的最高温, ...
- 在VM已安装Android4.4 连接小米手环 网络设置
1.打开一个终端 2.输入su,选择同意 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbGl5dW4xMjNneA==/font/5a6L5L2T/fon ...
- poj3281(最大流)
传送门:Dining 题意:一些牛,一些食物,一些饮料,每头牛都有其喜欢的几种食物和几种饮料,求最多能给多少头牛即找到食物又找到饮料~也就是有多少个 牛---食物---饮料 的匹配,而且满足一一匹配, ...
- 纸板上的虚拟现实和代码中的Cardboard
虚拟现实技术 未来视角? Google Cardboard试玩与比較 阅读下面文字请请先戳 戳我戳我 2014年的Google I/O大会,一向以Geek自称的Google拿出了一个叫做Cardboa ...
- 番外:android模拟器连不上网
1.删除你PC端得备用DNS,只留一个即可.确保能够上网. 注意:这个虽然不是必须的,出错点也不一定在他,但是我建议这样做,因为我们不确定到底模拟器和我们的PC是否使用的是一个DNS,不是的话,就会造 ...
- hdu1542(线段树——矩形面积并)
题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=1542 分析:离散化+扫描线+线段树 #pragma comment(linker,"/STA ...