【问题标题】:Animate layout on different activities on android 4.4(kitkat) and higherandroid 4.4(kitkat) 及更高版本上不同活动的动画布局
【发布时间】:2019-12-16 19:53:26
【问题描述】:

现在this specific page does describe 一种在不同活动的布局之间进行动画处理的方法,但问题是该 API 仅支持 android 5.0 及更高版本,所以我想知道动画的方式是什么(如过渡或任何其他类型的淡入淡出/滑入等)可以用于两个不同活动中的布局。

【问题讨论】:

    标签: android animation android-4.4-kitkat


    【解决方案1】:

    您无法在 Lollipop 版本之前的主题上设置过渡,但您仍然可以以编程方式使用动画。

    这是一个动画示例,新活动在首次创建时滑入,而当您按下后退按钮时则相反的运动。

    left_in.xml

    <set>
    
        <translate xmlns:android="http://schemas.android.com/apk/res/android"
                   android:fromXDelta="-100%"
                   android:toXDelta="0"
                   android:interpolator="@android:anim/decelerate_interpolator"
                   android:duration="500"/> //in milliseconds
    </set>
    

    right_in.xml

    <set>
    
    
        <translate xmlns:android="http://schemas.android.com/apk/res/android"
                   android:fromXDelta="100%"
                   android:toXDelta="0"
                   android:interpolator="@android:anim/decelerate_interpolator"
                   android:duration="500"/>
    </set>
    

    left_out.xml

    <set>
    
        <translate xmlns:android="http://schemas.android.com/apk/res/android"
                   android:fromXDelta="0"
                   android:toXDelta="-100%"
                   android:interpolator="@android:anim/decelerate_interpolator"
                   android:duration="500"/>
    </set>
    

    right_out.xml

    <set>
    
        <translate xmlns:android="http://schemas.android.com/apk/res/android"
                   android:fromXDelta="0"
                   android:toXDelta="100%"
                   android:interpolator="@android:anim/decelerate_interpolator"
                   android:duration="500"/>
    </set>
    

    在您的活动中,您可以按如下方式调用动画:

    开始时:overridePendingTransition(R.anim.right_in, R.anim.left_out);

    后按:overridePendingTransition(R.anim.left_in, R.anim.right_out);

    或以上任意组合。

    注意overridePendingTransition 上的第一个动画用于传入活动,第二个用于传出活动。

    【讨论】:

    • @NikosHidaigo,你能告诉我这个方法叫什么,并在文档中链接描述这个的页面吗?我的意思是这是我第一次看到在 Android 中使用 settranslate 标签,所以我也想了解这一点。
    • @juztcode 您可以在项目资源中(在您的 res 文件夹内)创建一个文件夹并将其命名为“anim”,然后通过右键单击 anim 目录创建我在帖子中包含的动画资源文件在您的 IDE(例如 Android Studio)中并选择 New->Animation 资源文件。复制 - 粘贴我提供给您的代码,并通过在所涉及活动的 onStart 和 onDestroy 中调用它来进行试验
    • 好的,我试试,然后回来。 :-),感谢您的帮助
    • 你说:“你不能在 Lollipop 版本之前的主题上设置过渡,但你仍然可以以编程方式使用动画”,在主题中设置过渡和以编程方式进行有什么区别
    猜你喜欢
    • 2014-06-03
    • 1970-01-01
    • 2016-09-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-25
    • 1970-01-01
    相关资源
    最近更新 更多