android 通用动画,Animation的通用属性

今天涉及的内容有:

1. Animation 的基本动画属性

2. Animation基本动画属性的效果图

3. MainActivity中代码调用

4. MainActivity对应布局代码

5. 项目结构图

####一. Animation 的基本动画属性

Animation 作为所有动画的基类,具有以下属性:

- android:duration 一次动画的执行时间,单位毫秒

- android:fillAfter 若设置为true,则控件动画结束时,保持动画结束时状态

- android:fillBefore 若设置为 true,则控件动画结束时,还原到初始化状态

- android:fillEnabled 与 android:fillBefore 效果相同,都是在控件动画结束时,还原到初始化状态

- android:repeatCount 动画执行次数,当取值为 infinite 时,表示无限循环。

- android:repeatMode 设置动画重复类型,有 reverse 和 restart 两个值。其中 reverse 表示倒放,restart 表示重放,并且必须和 -repeatCount 一起使用才能看到效果

- android:interpolator 用于设置插值器

####二.Animation基本动画属性的效果图

#####2.1 android:fillAfter 保持动画结束时的状态

![1.gif](/contentImages/image/jianshu/6127340-d6d142e782aa4347.gif)

需要注意的是,这时的动画直接定格在了结尾,即控件本身的1.4倍大小处。

#####2.2 android:fillBefore 还原到初始化状态

效果图如下:

![2.gif](/contentImages/image/jianshu/6127340-7b6faa83f319a763.gif)

这里需要注意的是,还原到初始化状态,指的是控件的原本大小,而不是指动画执行开始的显示状态,即可理解为,动画执行完毕后,恢复到控件原本大小(针对本缩放动画而言)

fillBefore 属性默认为true

#####2.3 android:repeatCount 动画执行次数

以运行3次为例,效果图如下:

![3.gif](/contentImages/image/jianshu/6127340-07f3c00b13dd40b8.gif)

#####2.4 android:repeatCount="infinite" 动画无限循环

运行效果如下:

![4.gif](/contentImages/image/jianshu/6127340-3c4d96944c0b7e2a.gif)

#####2.5 android:repeatMode="restart/reverse" 设定重复类型

效果图如下:

![5.gif](/contentImages/image/jianshu/6127340-8fd3e361b0656fe6.gif)

repeatMode取值为 reverse 时,运行效果图如下:

![6.gif](/contentImages/image/jianshu/6127340-d0f34613b8860e2c.gif)

很显然, repeatMode 中restart表示重放,reverse表示倒序回放。

#####三。MainActivity中代码调用

下面贴出动画文件在MainActivity中执行的代码:

```

public class MainActivity extends BaseActivity {

private TextView mTv;

private Button mBtn;

@Override

public int getContentViewId() {

return R.layout.activity_main;

}

@Override

public void initData() {

mTv=findViewById(R.id.textView);

mBtn=findViewById(R.id.button);

}

@Override

public void setListener() {

mBtn.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View view) {

//startScaleAnimation(mTv);

保持动画结束时的状态

//scaleFillAfter(mTv);

还原到动画初始化状态

//scaleFillBefore(mTv);

动画执行3次

//scaleRepeatCount1(mTv);

动画执行无限循环

//scaleRepeatCount2(mTv);

动画执行类型:重放

//scaleRepeatRestart(mTv);

//动画执行类型:倒放

scaleRepeatReverse(mTv);

}

});

}

/**开始动画**/

private void startScaleAnimation(View view){

Animation animation= AnimationUtils.loadAnimation(MainActivity.this,R.anim.scale_anim);

view.startAnimation(animation);

}

/**保持动画结束时的状态**/

private void scaleFillAfter(View view){

Animation animation= AnimationUtils.loadAnimation(MainActivity.this,R.anim.scale_fill_after);

view.startAnimation(animation);

}

/**还原到动画初始化状态**/

private void scaleFillBefore(View view){

Animation animation= AnimationUtils.loadAnimation(MainActivity.this,R.anim.scale_fill_before);

view.startAnimation(animation);

}

/**动画执行3次**/

private void scaleRepeatCount1(View view){

Animation animation= AnimationUtils.loadAnimation(MainActivity.this,R.anim.scale_repeat_count_1);

view.startAnimation(animation);

}

/**动画执行无限循环**/

private void scaleRepeatCount2(View view){

Animation animation= AnimationUtils.loadAnimation(MainActivity.this,R.anim.scale_repeat_count_2);

view.startAnimation(animation);

}

/**动画执行类型:重放**/

private void scaleRepeatRestart(View view){

Animation animation= AnimationUtils.loadAnimation(MainActivity.this,R.anim.scale_repeat_restart);

view.startAnimation(animation);

}

/**动画执行类型:倒放**/

private void scaleRepeatReverse(View view){

Animation animation= AnimationUtils.loadAnimation(MainActivity.this,R.anim.scale_repeat_reverse);

view.startAnimation(animation);

}

}

```

####四.MainActivity对应布局代码

下面贴出MainActivity对应的布局 activity_main.xml代码:

```

```

####五.项目结构图

![7.png](/contentImages/image/jianshu/6127340-f9347d97c3209eff.png)

ok,关于Animation的基本属性就讲到这里了,谢谢大家,具体的大家可以下载demo学习。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值