内容简介:View动画定义了渐变Alpha、旋转Rotate、缩放Scale、平移Translate四种基本动画,并且通过这四种基本动画的组合使用,可以实现多种交互效果。View动画使用非常简单,不仅可以通过XML文件来定义动画,同样可以通过Java代码来实现动画过程。作用于ViewGroup,比如listView,其item都会有动画
View动画定义了渐变Alpha、旋转Rotate、缩放Scale、平移Translate四种基本动画,并且通过这四种基本动画的组合使用,可以实现多种交互效果。
View动画使用非常简单,不仅可以通过XML文件来定义动画,同样可以通过 Java 代码来实现动画过程。
//xml实现 <?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"> </alpha> Animation alphaAnim = AnimationUtils.loadAnimation(getApplicationContext(), R.anim.view_anim_alpha); mTargetView.startAnimation(alphaAnim); //动态代码实现 public void clickToAlpha(View view) { AlphaAnimation alphaAnimation = new AlphaAnimation(1, 0); alphaAnimation.setDuration(2000); mTargetView.startAnimation(alphaAnimation); }
帧动画
<?xml version="1.0" encoding="utf-8"?> <animation-list xmlns:android="http://schemas.android.com/apk/res/android" android:oneshot="false"> <!--通过Android动画集播放的八十张图片--> <item android:drawable="@mipmap/c_1" android:duration="50" /> <item android:drawable="@mipmap/c_2" android:duration="50" /> <!-- 省略... --> <item android:drawable="@mipmap/circle_19" android:duration="50" /> <item android:drawable="@mipmap/circle_20" android:duration="50" /> </animation-list> <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.ansen.frameanimation.sample.MainActivity"> <ImageView android:id="@+id/image" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/animlist" /> </LinearLayout> ImageView image = (ImageView) findViewById(R.id.image); AnimationDrawable animationDrawable = (AnimationDrawable) image.getDrawable(); animationDrawable.start();
场景
- 1.LayoutAnimation
作用于ViewGroup,比如listView,其item都会有动画
<?xml version="1.0" encoding="utf-8"?> <layoutAnimation xmlns:android="http://schemas.android.com/apk/res/android" android:animation="@anim/left" android:animationOrder="normal" android:delay="30%" android:interpolator="@android:anim/anim_item"> </layoutAnimation>
- 2.Activity 切换过渡动画
Intent intent=new Intent(this,SecondActivity.class); startActivity(intent); overridePendingTransition(R.anim.enter_anim,R.anim.exit_anim); //获取退出时 @override public void finish(){ super.finish() overridePendingTransition(R.anim.enter_anim,R.anim.exit_anim); }
为什么真实改变位置了,而补间动画没有
属性动画
ObjectAnimator.ofFloat(test, View.ALPHA, 0f, 500f) .setDuration(500) .start();
原理:属性动画View,需要提供get()/set()方法。
ValueAnimator
插值器和估值器
- TimeInterpolator 时间插值器,根据时间计算
- TypeInterpolator 类型估值器
区别
补间动画: 基于View的渐变动画,她只改变了View的绘制效果,而实际属性值未变。
属性动画:通过改变view或者object的属性实现动画是属性动画的最根本的特点。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- iOS 动画使用总结
- CSS动画优雅降级的简单总结
- lottie动画设计_免异常总结
- iOS动画总结(Core Animation贝塞尔&Transform)
- 【前端优化】动画几种实现方式总结和性能分析
- 【Android 动画】动画详解之属性动画(三)
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Persuasive Technology
B.J. Fogg / Morgan Kaufmann / 2002-12 / USD 39.95
Can computers change what you think and do? Can they motivate you to stop smoking, persuade you to buy insurance, or convince you to join the Army? "Yes, they can," says Dr. B.J. Fogg, directo......一起来看看 《Persuasive Technology》 这本书的介绍吧!