内容简介: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 动画】动画详解之属性动画(三)
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。