Android(18)——动画处理,自定义View

Android

1 动画处理

动画的意义:视觉效果,引导动画
Android动画有 三种: View动画、帧动画、属性动画
Tween (补间动画),即View动画, 包括了平移(Translate)、缩放(Scale)、 旋转(Rotate)、透明度(Alpha);
Frame (帧动画)循序播放一组预先定义好的图片;
属性动画(Property Animation)类名是: ValueAnimator、 ObjectAnimator;

1.1 逐帧动画

图片动画
➢AnimationDrawable
➢< animation-list>
demo:
布局文件loading.xml,一帧就是一张图片

布局文件activity_frame_animation.xml


动画演示一遍:
animationDrawable.setOneShot(true);
也可以在xml中添加属性< animation-list android:oneshot=“true” xmlns:android=""…>

1.2 视图动画

➢android.view.animation
➢Animation

●< alpha> AlphaAnimation

透明度变化的动画demo

alpha.xml

activity_view_animation.xml

ViewAnimationActivity.java

透明度1.0表示完全不透明,0表示完全透明。

●< scale>ScaleAnimation

类似于透明度的写法,这是布局文件scale.xml

android:duration=“1000”:表示拉伸的时间是1000ms,不设置的话,默认是300ms
android:fillAfter=“true”:表示保持拉伸后的状态

android:pivotX=“50%”
android:pivotY=“50%”:表示拉伸的基准点在中心
android:pivotX=“20%p”:表示基准点的x轴相对于父控件的20%

●< translate>TranslateAnimation

translate.xml

将上述的条件X终点改为android:toXDelta=“50%p”,相对于父控件的50%距离,如果超出父控件大小,是看不到动画效果的。
android:repeatCount=“1”:表示平移次数,2次的话就是快速回到起点,再移动一次
android:repeatCount=“infinite”:表示平移无数次
android:repeatMode=“reverse”:表示原路返回至原点

●< rotate>RotateAnimation

rotate.xml

android:toDegress=“360”:表示旋转360度
android:pivotX=“50%”
android:pivotY=“50%”:表示旋转基准点在中心
android:repeatCount=“3”:表示旋转次数
android:repeatCount=“infinite”:表示旋转无数次

添加一个按钮重建Activity
drawable右键New,VectorAsset,选择icon

menu新建资源文件renew.xml

在Activity重写函数,点击右上角,就可以重建activity,重复演示动画

●< set>AnimationSet

集合动画
布局文件set.xml

插值器Interpolator

设置变化速率,之前没有设置都是线性变化的。
布局文件中写两个View,写点击事件:

动画时长有不同的取值:

1.3 属性动画

视图动画VS属性动画
操作对象:视图动画只能操作视图View对象;任意对象
属性:视图并没有改变它是视图的属性;真正改变属性
总之,属性动画更为强大。

动画属性:时长,时间插值器,重复次数,重复模式,动画集,延迟

➢android.animation
Animator
●ValueAnimator

●ViewPropertyAnimator

●AnimatorSet

方案2,旋转的同时平移:
view.animate().rotation(720). setDuration(1000). start();
view.animate(). translationX(500).setDuration(1000).start();
先旋转后位移:
view.animate().rotation(720).setDuration(1000).start() ;
view.animate().translationX(500).setDuration(1000).setStartDelay(1000).start();

2 转场动画

作用:视觉连续性,好处:吸引用户注意力,合理控制用户聚焦点,引导用户
视觉状态改变:单个视图,布局,activity跳转
揭露动画:
Animator animator = ViewAnimationUtils.createCircularReveal(mView,cx,cy,0,r);
在这里插入图片描述
在这里插入图片描述
揭露效果:View状态改变

多视图的转场动画
Activity的转场动画

android.transition
Scene
Transition
TransitionManager

Scene
Scene.getSceneForLayout(sceneRoot, R.layout.scene_overview,this);

Transition
Fade
ChangeBounds
AutoTransition
TransitionInflater.from(getBaseContext()).inflateTransition(R.transition.transition);
TransationManager.go(mTargetScene, transation);

3 自定义View

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值