补间动画
来源:互联网 发布:windows10装mac系统 编辑:程序博客网 时间:2024/06/03 17:50
补间动画:指定动画资源(图片)开始位置中间位置和结束位置,控件仍停留在原来位置(实际位置没有改变)
例如:匀速旋转动画
(透明度、缩放、位移、旋转)
/** * 透明度变化的动画 * @param view */public void alpha(View view) {AlphaAnimation aa = new AlphaAnimation(0.0f, 1.0f);// 完全透明0.0f ---> 完全不透明1.0faa.setDuration(2000);// 动画播放2秒aa.setRepeatCount(2);//重复播放次数aa.setRepeatMode(Animation.REVERSE);//重复模式 倒序播iv.startAnimation(aa);//iv为一张图片资源}
/** * 缩放动画 * * @param view */public void scale(View view) {//fromX,toX,fromY,toY,pivotXType,pivotXValue,pivotYType,pivotYValue//X,Y方向放大2倍,围绕(0,0)坐标缩放 [(0.5f,0.5f)中心点]ScaleAnimation sa = new ScaleAnimation(0.0f, 2.0f, 0.0f, 2.0f,Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF,0.5f);sa.setDuration(2000);sa.setRepeatCount(2);sa.setRepeatMode(Animation.REVERSE);iv.startAnimation(sa);}
/** * 位移动画 * * @param view */public void Trans(View view) {//pivotXType,pivotXValue,toXType,toXValue,pivotYType,pivotYValue,toYType,toYValue//X和Y方向移动位移(相对自身)TranslateAnimation ta = new TranslateAnimation(Animation.RELATIVE_TO_SELF, -0.5f, Animation.RELATIVE_TO_SELF, 0.5f,Animation.RELATIVE_TO_SELF, -0.5f, Animation.RELATIVE_TO_SELF, 0.5f);//还可以相对于父类RELATIVE_TO_PARENTta.setDuration(2000);ta.setRepeatCount(2);ta.setRepeatMode(Animation.REVERSE);iv.startAnimation(ta);}ta.setRepeatCount(Animation.INFINITE);//不停止,一直播放 值为-1
/** * 旋转动画 * * @param view */public void rotate(View view) {//fromDegrees,toDegrees,pivotXType,pivotXValue,pivotYType,pivotYValue//围绕中心点旋转360度RotateAnimation ra = new RotateAnimation(0, 360, Animation.RELATIVE_TO_SELF,0.5f, Animation.RELATIVE_TO_SELF, 0.5f);ra.setDuration(2000);ra.setRepeatCount(2);ra.setRepeatMode(Animation.REVERSE);iv.startAnimation(ra);}
//动画合集public void set(View view){AnimationSet set = new AnimationSet(false);TranslateAnimation ta = new TranslateAnimation(Animation.RELATIVE_TO_SELF, -0.5f, Animation.RELATIVE_TO_SELF, 0.5f,Animation.RELATIVE_TO_SELF, -0.5f, Animation.RELATIVE_TO_SELF, 0.5f);ta.setDuration(2000);ta.setRepeatCount(2);ta.setRepeatMode(Animation.REVERSE);RotateAnimation ra = new RotateAnimation(0, 360, Animation.RELATIVE_TO_SELF,0.5f, Animation.RELATIVE_TO_SELF, 0.5f);ra.setDuration(2000);ra.setRepeatCount(2);ra.setRepeatMode(Animation.REVERSE);ScaleAnimation sa = new ScaleAnimation(0.0f, 2.0f, 0.0f, 2.0f,Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF,0.5f);sa.setDuration(2000);sa.setRepeatCount(2);sa.setRepeatMode(Animation.REVERSE);set.addAnimation(sa);set.addAnimation(ta);set.addAnimation(ra);iv.startAnimation(set);}
补间动画——xml形式
alpha.xml<?xml version="1.0" encoding="utf-8"?><alpha xmlns:android="http://schemas.android.com/apk/res/android" android:fromAlpha="0" android:toAlpha="1.0" android:duration="2000" android:repeatCount="2" android:repeatMode="reverse" ></alpha>/** * 透明度变化的动画 * * @param view */public void alpha(View view) {Animation aa = AnimationUtils.loadAnimation(this, R.anim.alpha);iv.startAnimation(aa);}
scale.xml<?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="0.0" android:pivotX="50%" 50%p//相对于PARENT的50% android:pivotY="50%" android:repeatCount="2" android:repeatMode="reverse" android:toXScale="2.0" android:toYScale="2.0" > </scale>/*** 缩放动画* * @param view*/public void scale(View view) {Animation sa = AnimationUtils.loadAnimation(this, R.anim.scale);iv.startAnimation(sa);}
trans.xml<?xml version="1.0" encoding="utf-8"?><translate xmlns:android="http://schemas.android.com/apk/res/android" android:duration="2000" android:fromXDelta="-50%" android:fromYDelta="-50%" android:repeatCount="2" android:repeatMode="reverse" android:toXDelta="50%" android:fillAfter="true" android:toYDelta="50%" ></translate>android:fillAfter="true" 停留在最后一个动画效果的位置,不回到原来的位置/*** 位移动画* * @param view*/public void Trans(View view) {Animation ta = AnimationUtils.loadAnimation(this, R.anim.trans);iv.startAnimation(ta);}
rotate.xml<?xml version="1.0" encoding="utf-8"?><rotate xmlns:android="http://schemas.android.com/apk/res/android" android:fromDegrees="0" android:toDegrees="360" android:duration="2000" android:repeatCount="2" android:repeatMode="reverse" android:pivotX="50%" android:pivotY="50%" ></rotate>/*** 旋转动画* * @param view*/public void rotate(View view) {Animation ra = AnimationUtils.loadAnimation(this, R.anim.rotate);iv.startAnimation(ra);}
set.xml<?xml version="1.0" encoding="utf-8"?><set> <rotate xmlns:android="http://schemas.android.com/apk/res/android" android:duration="2000" android:fromDegrees="0" android:pivotX="50%" android:pivotY="50%" android:repeatCount="2" android:repeatMode="reverse" android:toDegrees="360" > </rotate> <scale xmlns:android="http://schemas.android.com/apk/res/android" android:duration="2000" android:fromXScale="0.0" android:fromYScale="0.0" android:pivotX="50%" android:pivotY="50%" android:repeatCount="2" android:repeatMode="reverse" android:toXScale="2.0" android:toYScale="2.0" > </scale> <translate xmlns:android="http://schemas.android.com/apk/res/android" android:duration="2000" android:fromXDelta="-50%" android:fromYDelta="-50%" android:repeatCount="2" android:repeatMode="reverse" android:toXDelta="50%" android:toYDelta="50%" > </translate></set>public void set(View view){Animation set = AnimationUtils.loadAnimation(this, R.anim.set);iv.startAnimation(set);}
例如:匀速旋转动画
/** 均匀旋转动画 */ private RotateAnimation refreshingAnimation; refreshingAnimation = (RotateAnimation) AnimationUtils.loadAnimation(mContext, R.anim.rotating); refreshingAnimation.setDuration(5000); // 添加匀速转动动画 LinearInterpolator lir = new LinearInterpolator(); refreshingAnimation.setInterpolator(lir); //设置动画(匀速旋转动画) atdp_loading_iv.startAnimation(refreshingAnimation); atdp_loading_iv.clearAnimation(); <?xml version="1.0" encoding="utf-8"?> <rotate xmlns:android="http://schemas.android.com/apk/res/android" android:duration="1000" android:fillAfter="true" android:fromDegrees="0" android:pivotX="50%" android:pivotY="50%" android:repeatCount="-1" android:toDegrees="359" > </rotate>
阅读全文
0 0
- 动画----补间动画
- Android 动画-----补间动画
- 补间动画,属性动画
- 补间动画,帧动画
- 补间动画,帧动画
- Android动画--补间动画
- Android-补间动画
- 补间(Tween)动画
- 补间动画Tween
- Animation补间动画
- 补间(Tween)动画
- 补间动画
- 补间动画
- Android-补间动画
- 补间动画
- 补间动画
- Android 补间动画
- 补间动画
- Unity4.x 天空盒子升级5.x显示混乱
- ArrayList和LinkedList增删数据对比
- Windows APC机制 & 可警告alertable的线程等待状态
- 12 在ZStack里实现uart数据接收功能
- C#文件加密和解密
- 补间动画
- 机器学习基石 6.4 A Pictorial Proof
- HDU 6047 Maximum Sequence
- Ansible安装完后使用ssh进行连接测试
- 32.Android端向web端(服务器)提交数据(GET-POST-AsyncHttpClient)
- 【CJ Cup】分解
- python 项目结构
- 牛客网编程基础9-11
- 订单分库分表实践总结