动画----补间动画

  1. TranslateAnimation(平移动画)
    1.1静态实现
    1.1.1 res/anim在该文件夹中创建动画的xml资源文件
    动画资源文件中设置XY方向上的距离时,可以设置像素值,也可以设置百分比
    translate xmlns:android="http://schemas.android.com/apk/res/android"
    android:fromXDelta="0"
    android:toXDelta="500"
    android:fromYDelta="0"
    android:toYDelta="0"
    android:duration="2000"
    android:repeatCount="infinite"
    android:repeatMode="reverse"

        通过引入xml文件的方式加载一个动画
        TranslateAnimation animation = (TranslateAnimation) 
         AnimationUtils.loadAnimation(this,    R.anim.translate);
        让动画动起来
        animation.start();
        把平移动画和iv对象进行绑定
        iv.setAnimation(animation);

1.2 动态的添加动画
12.1创建TranslateAnimation的类拿到他的对象
int fromXType, float fromXValue, int toXType, float toXValue,
int fromYType, floatfromYValue, int toYType, float toYValue
int fromXType :x坐标起始位置的类型 (1、相对自己,2相对父布局,3 绝对位置)
float fromXValue :x坐标起始位置的值
TranslateAnimation animation = new TranslateAnimation(
Animation.RELATIVE_TO_SELF, 0f,
Animation.RELATIVE_TO_SELF, 1f,
Animation.RELATIVE_TO_SELF, 0f,
Animation.RELATIVE_TO_SELF, 0f
1.2.2 设置各种属性
设置动画重复的次数
animation.setRepeatCount(Animation.INFINITE);
设置动画,单次执行的时间
animation.setDuration(2000);
设置动画执行的模式,(Animation.REVERSE,重复,Animation.RESTART往返)
animation.setRepeatMode(Animation.RESTART);
开始动画
animation.start();
让iv实现动画效果
iv.setAnimation(animation);

1.3 其他三种动画的实现与平移动画的过程一样,只不过需要使用相对应的类,
设置对应的属性值
ScaleAnimation(缩放动画)
RotateAnimation(旋转动画)
AlphaAnimation(透明度动画)
这里写图片描述
1.4 使用组合动画
1.4.1通过xml资源文件把多个动画节点放在anim文件夹下的节点中

    set xmlns:android="http://schemas.android.com/apk/res/android"
    android:duration="2000"
    android:repeatCount="infinite"
    android:repeatMode="restart">
    **translate**
        android:duration="3000"
        android:fromXDelta="0"
        android:repeatCount="infinite"
        android:toXDelta="300" />
    **rotate**
        android:fromDegrees="0"
        android:toDegrees="360"
        android:repeatCount="infinite"
        android:pivotY="50%"
        android:pivotX="50%"
        </set>
        使用Animation的类来加载动画
        Animation animation = AnimationUtils.loadAnimation(this,R.anim.set_animat);
        animation.start();
        iv.setAnimation(animation);
  1. 补间动画的应用
    2.1从一个Activity跳转到另一个Activity的动画
    2.1.1 一部分是第一个activity退出时的动画;另外一部分是第二个activity进入时的动画;
    在Android的2.0版本之后,有了一个函数来帮我们实现这个动画。
    这个函数就是 overridePendingTransition
    这个函数有两个参数,一个参数是第一个activity进入时的动画,另外一个参数则是第二个activity退出
    时的动画。
    这里需要特别说明的是,关于overridePendingTransition这个函数,有两点需要主意
    1.它必需紧挨着startActivity()或者finish()函数之后调用”
    2.它只在android2.0以及以上版本上适用
    translate_in.xml
    translate xmlns:android="http://schemas.android.com/apk/res/android"
    android:fromXDelta="100%"
    android:toXDelta="0"
    android:duration= "2000"
    />
     translate_out.xml
     translate xmlns:android="http://schemas.android.com/apk/res/android"
    android:fromXDelta="0"
    android:toXDelta="-100%"
    android:duration= "2000"
    />
   Intent intent = new Intent(MainActivity.this, TweenAnimActivity.class);
            startActivity(intent);
            添加Activity跳转时的动画效果
            overridePendingTransition(R.anim.tran_in,R.anim.tran_out);

退出时的动画的代码:

       public boolean onKeyDown(int keyCode, KeyEvent event) {
        /**
         * 1.判断到当前点击的按键为返回键
         * 2.既然自己判断了返回键的监听事件,就要按自己来实现返回的功能;
         */
        if (keyCode == KeyEvent.KEYCODE_BACK) {
            finish();
            overridePendingTransition(R.anim.back_in, R.anim.back_out);
        }
        return super.onKeyDown(keyCode, event);
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值