动画设置

//位移动画
public void trans(View view){
        //使用代码创建位移的动画....Translate位移
        TranslateAnimation translateAnimation = new TranslateAnimation(Animation.RELATIVE_TO_PARENT, 0.0f,
 Animation.RELATIVE_TO_PARENT, 1.0f, Animation.RELATIVE_TO_PARENT, 0.0f, Animation.RELATIVE_TO_PARENT,
 1.0f);
        
        //动画要执行需要指定执行的时间
        translateAnimation.setDuration(3000);
        //重复执行动画....设置重复的次数
        translateAnimation.setRepeatCount(1);
        //设置重复执行的模式
        /**
         * Animation.RESTART重新再次执行动画,,,默认就是这种形式
         * Animation.REVERSE反过来再次执行动画
         * 
         * 重复的模式只在重复次数大于0的时候起作用,,,,或者重复次数设置为 INFINITE
         * 
         * Animation.INFINITE无限次循环
         */
        translateAnimation.setRepeatMode(Animation.REVERSE);
        
        //开始动画
        imageView.startAnimation(translateAnimation);
        
    }

//缩放动画
public void scale(View view) {
        /**
         * pivotXType, 中心点x轴的类型
         * pivotXValue, 
         * pivotYType, 
         * pivotYValue
         */
        ScaleAnimation scaleAnimation = new ScaleAnimation(1.0f, 0.0f, 1.0f, 0.0f,
 Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);
        
        scaleAnimation.setDuration(3000);
        
        //设置动画结束之后保持结束的状态
        scaleAnimation.setFillAfter(true);
        
        imageView.startAnimation(scaleAnimation);
    }
 

//透明度变化

public void ala(View view) {
        /**
         * fromAlpha,开始的透明度
         *  toAlpha,,结束的
         */
        AlphaAnimation alphaAnimation = new AlphaAnimation(1.0f, 0.5f);
        
        alphaAnimation.setDuration(3000);
        
        imageView.startAnimation(alphaAnimation);
        
    }

//旋转动画

    /**
     * fromDegrees, 起始的角度
     * toDegrees, 终点的角度
     * pivotXType, 中心x轴的类型
     * pivotXValue, 中心x轴的值
     * pivotYType, 
     * pivotYValue
     * @param view
     */
    public void rotate(View view) {
        RotateAnimation rotateAnimation = new RotateAnimation(0, -360, Animation.RELATIVE_TO_SELF, 0.5f,
 Animation.RELATIVE_TO_SELF, 0.5f);
        
        rotateAnimation.setDuration(3000);
        
        imageView.startAnimation(rotateAnimation);
    }
 
//组合动画

    public void zuhe(View view) {
        TranslateAnimation translateAnimation = new TranslateAnimation(Animation.RELATIVE_TO_PARENT, 0.0f,
 Animation.RELATIVE_TO_PARENT, 1.0f, Animation.RELATIVE_TO_PARENT, 0.0f, Animation.RELATIVE_TO_PARENT, 1.0f);
        ScaleAnimation scaleAnimation = new ScaleAnimation(1.0f, 0.0f, 1.0f, 0.0f, Animation.RELATIVE_TO_SELF,
 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);
        AlphaAnimation alphaAnimation = new AlphaAnimation(1.0f, 0.5f);
        RotateAnimation rotateAnimation = new RotateAnimation(0, -360, Animation.RELATIVE_TO_SELF, 0.5f,
 Animation.RELATIVE_TO_SELF, 0.5f);
        
        //创建一个组合动画...AnimationSet...shareInterpolator插值器(设置插值器可以是动画产生加速效果)
        //给组合添加动画
        AnimationSet animationSet = new AnimationSet(true);//组合动画是否共同使用一个插值器
        animationSet.addAnimation(scaleAnimation);
        animationSet.addAnimation(alphaAnimation);
        animationSet.addAnimation(rotateAnimation);
        //位移动画
        animationSet.addAnimation(translateAnimation);
        
        //设置时间
        animationSet.setDuration(3000);
        imageView.startAnimation(animationSet);
    }

//Activity的跳转动画
public void tiaozhuan(View view) {
        Intent intent = new Intent(MainActivity.this,AecondActivity.class);
        
        startActivity(intent);
        
        //给跳转加动画
        /**
         *只需要在启动Activity后使用overridePendingTransition方法传入anim的id即可完成Activity的切换动画效果。
         * int enterAnim, 进入的动画,,,第二个界面的动画...xml资源文件下的动画的id
         * int exitAnim,,,第一个界面出去的动画
         */
        overridePendingTransition(R.anim.anim_in, R.anim.anim_out);
        
        //overridePendingTransition(R.anim.trans_in, R.anim.trans_out);
    }

//在value下创建anim文件anim_in.xml/anim_out.xml

//创建进入和退出的动画

<?xml version="1.0" encoding="utf-8"?>
<alpha xmlns:android="http://schemas.android.com/apk/res/android"
    android:duration="3000"
    android:fromAlpha="0"
    android:toAlpha="1" >

</alpha>
<?xml version="1.0" encoding="utf-8"?>
<alpha xmlns:android="http://schemas.android.com/apk/res/android"
    android:duration="3000"
    android:fromAlpha="1"
    android:toAlpha="0" >

</alpha>

//位移
<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
    android:duration="3000"
    android:fromXDelta="100%p"
    android:fromYDelta="0"
    android:toXDelta="0"
    android:toYDelta="0" >

    <!-- 在xml动画文件中没有type这个属性,,,,100%p代表着相对父窗体,,,100%相对自己,,,50.0f数值就是一个绝对的类型 -->

</translate>
<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
    android:duration="3000"
    android:fromXDelta="0"
    android:fromYDelta="0"
    android:toXDelta="-100%p"
    android:toYDelta="0" >

</translate>








评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值