翻页动画,fragment翻页动画,Activity的进出场动画

1、fragment的翻页动画需要手动创建一个文件夹,在Res目录下创建anim或者animator文件夹,之所以不一样是要看你使用的fragment的导包是哪一种fragment,如果是导入的是v4包的fragment的话,那么就要创建anim文件夹,xml跟activity的动画xml是一样的,如果是导入的app的包创建的就是animator文件夹。然后xml的写法是:

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <objectAnimator
        android:interpolator="@android:interpolator/decelerate_quint"
        android:valueFrom="100dp" android:valueTo="0dp"
        android:valueType="floatType"
        android:propertyName="translationX"
        android:duration="@android:integer/config_mediumAnimTime" />
    <objectAnimator
        android:interpolator="@android:interpolator/decelerate_quint"
        android:valueFrom="0.0" android:valueTo="1.0"
        android:valueType="floatType"
        android:propertyName="alpha"
        android:duration="@android:integer/config_mediumAnimTime" />
</set>


用法都是:

FragmentTransaction transaction = getFragmentManager().
        beginTransaction();//这个实例是app的包
/**
                 * 如果是两个参数是分别指两个fragment一进一出,进入了下一个fragment然后返回的时候不会有效果的
                 * 第一个参数代表是将要进栈的fragmentB,第二个参数是当前fragmentA,第三个参数是当前的fragmentA下一次
                 * 进场效果,第四个是将要进栈的那个fragmentB的出栈效果
                 */
transaction.setCustomAnimations(
        R.animator.slide_in_left, R.animator.slide_in_right,
        R.animator.slide_in_left, R.animator.slide_in_right
);
transaction
        .replace(R.id.replace_framelayout, new SecondFragment())
        .addToBackStack(null)
        .commit();



无论是不是导入的v4包的fragment只是文件夹不一样,其他操作都一样,一样的动画xml,一样的使用方法。

2、activity的进出场动画只能在res文件夹下新建anim文件夹来存放xml动画资源,而且动画的写法也不一样。

activity的动画资源xml————----》

<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android">    <translate android:fromYDelta="100%p" android:toYDelta="0"            android:duration="2000"/>    <alpha android:fromAlpha="0.0" android:toAlpha="1.0"            android:duration="2000" /></set>

activity的用法:

Intent intent = new Intent(TestActivities.this,TestActivityFirst.class);
startActivity(intent);
overridePendingTransition(R.anim.slide_in_bottom,R.anim.slide_out_bottom);

(1)

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <!--这个是从屏幕的右边到屏幕的中间-->
    <translate
        android:duration="700"
        android:fromXDelta="100%p"
        android:toXDelta="0" />
    <alpha
        android:duration="700"
        android:fromAlpha="0.5"
        android:toAlpha="1.0" />
</set>

(2)

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <!--这个是从屏幕的中间到屏幕的左边-->
    <translate
        android:duration="700"
        android:fromXDelta="0"
        android:toXDelta="-100%p" />
    <alpha
        android:duration="700"
        android:fromAlpha="1.0"
        android:toAlpha="0.8" />
</set>

(3)

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <!--这个是从屏幕的左边到屏幕的中间-->
    <translate
        android:duration="700"
        android:fromXDelta="-100%p"
        android:toXDelta="0" />
    <alpha
        android:duration="700"
        android:fromAlpha="0.8"
        android:toAlpha="1.0" />
</set>

(4)

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <!--这个是从屏幕的中间到屏幕的右边-->
    <translate
        android:duration="700"
        android:fromXDelta="0"
        android:toXDelta="100%p" />
    <alpha
        android:duration="700"
        android:fromAlpha="1.0"
        android:toAlpha="0.8" />
</set>

(5)

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <!--这个是从屏幕的中间慢慢出现-->
    <alpha
        android:duration="700"
        android:fromAlpha="0.4"
        android:toAlpha="1.0" />
</set>

(6)

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <!--这个是从屏幕的中间慢慢消失-->
    <alpha
        android:duration="700"
        android:fromAlpha="1.0"
        android:toAlpha="0" />
</set>

(7)

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <!--手机屏幕顶部的左上方坐标是0,0,比如30 ->0 就是离顶部的30%到离顶部0%-->
    <translate
        android:duration="1000"
        android:fromYDelta="30%p"
        android:toYDelta="0" />
    <alpha
        android:duration="1000"
        android:fromAlpha="0.0"
        android:toAlpha="1.0" />
</set>

(8)

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <!--往下,注意收集屏幕左上角是(0,0),横向是X轴,竖着是Y轴-->
    <translate android:fromYDelta="0%p" android:toYDelta="100%p"
        android:duration="1000"/>
    <alpha android:fromAlpha="1.0" android:toAlpha="0.0"
        android:duration="1000" />
</set>


  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值