【问题标题】:Animations for overlaping fragment right to left and left to right according material design根据材料设计从右到左和从左到右重叠片段的动画
【发布时间】:2014-12-21 13:00:24
【问题描述】:

我正在尝试实现一个片段重叠的解决方案,就像谷歌材料设计文档中推荐的那样,但不幸的是我还没有找到一种方法来为 api v9 (android 2.3) 有人可以帮我吗?我会欣赏动画的 xml 示例,但代码也可以。

Link with animation

Animation Meaningful transitions page in Google docs

【问题讨论】:

  • 您找到解决方案了吗?如果是,请发布。

标签: android animation fragment material-design overlap


【解决方案1】:

我还没有在实际的 api v9 设备上测试过,但是所有东西都可以使用,因为较低的 API,所以请尝试一下:

activity1activity2 时使用:

overridePendingTransition(R.anim.slide_in_right, R.anim.shade);

回去时使用:

overridePendingTransition(R.anim.unshade, R.anim.slide_out_right);

地点:

slide_in_right.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:interpolator="@android:anim/decelerate_interpolator" >
    <translate android:duration="1000" android:fromXDelta="100%" android:toXDelta="0%" />
</set>

shade.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:interpolator="@android:anim/decelerate_interpolator">
    <alpha android:duration="1000" android:fromAlpha="1.0" android:toAlpha="0.7" />
</set>

unshade.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:interpolator="@android:anim/decelerate_interpolator">
    <alpha android:duration="1000" android:fromAlpha="0.7" android:toAlpha="1" />
</set>

slide_out_right.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:interpolator="@android:anim/decelerate_interpolator" >
    <translate android:duration="1000" android:fromXDelta="0%" android:toXDelta="100%"/>
</set>

【讨论】:

    【解决方案2】:

    在您的代码中实现一个 BaseActivity 扩展 Activity 并在其 onCreate() 内部实现此

    @Override
        protected void onCreate(Bundle savedInstanceState)
        {
            super.onCreate(savedInstanceState);
            //opening transition animations
            overridePendingTransition(R.anim.activity_open_translate,R.anim.activity_close_scale);
        }
    

    创建两个动画文件。activity_open_translate的sn-p是

    <?xml version="1.0" encoding="utf-8"?>
    
    <set xmlns:android="http://schemas.android.com/apk/res/android">
    
        <translate android:fromXDelta="100%"
                   android:toXDelta="0%"
                   android:duration="@android:integer/config_mediumAnimTime" />
    
    </set>
    

    activty_close_scale 的 sn-p 是

    <?xml version="1.0" encoding="utf-8"?>
    
    <set xmlns:android="http://schemas.android.com/apk/res/android">
    
        <scale android:fromXScale="100%p"
               android:toXScale="80%p"
               android:fromYScale="100%p"
               android:toYScale="80%p"
               android:pivotX="50%p"
               android:pivotY="50%p"
               android:duration="@android:integer/config_mediumAnimTime" />
    
        <alpha android:fromAlpha="1"
               android:toAlpha="0.5"
               android:duration="@android:integer/config_mediumAnimTime"/>
    
    </set>
    

    现在您要做的就是将此 BaseActivity 类扩展为您想要的 Activity

    【讨论】:

      猜你喜欢
      • 2020-09-21
      • 1970-01-01
      • 1970-01-01
      • 2016-03-01
      • 1970-01-01
      • 2022-01-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多