【发布时间】:2014-12-21 13:00:24
【问题描述】:
我正在尝试实现一个片段重叠的解决方案,就像谷歌材料设计文档中推荐的那样,但不幸的是我还没有找到一种方法来为 api v9 (android 2.3) 有人可以帮我吗?我会欣赏动画的 xml 示例,但代码也可以。
【问题讨论】:
-
您找到解决方案了吗?如果是,请发布。
标签: android animation fragment material-design overlap
我正在尝试实现一个片段重叠的解决方案,就像谷歌材料设计文档中推荐的那样,但不幸的是我还没有找到一种方法来为 api v9 (android 2.3) 有人可以帮我吗?我会欣赏动画的 xml 示例,但代码也可以。
【问题讨论】:
标签: android animation fragment material-design overlap
我还没有在实际的 api v9 设备上测试过,但是所有东西都可以使用,因为较低的 API,所以请尝试一下:
从activity1 到activity2 时使用:
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>
【讨论】:
在您的代码中实现一个 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
【讨论】: