2015-09-01 36 views
0

我想要在开始新活动时拥有类似于解锁手机的动画效果(向上滑动屏幕以显示下面的内容)。如何通过滑过上一个活动来开始新活动?

enter image description here

这甚至可能活动之间? 这个设计如何实现?

+0

你到目前为止做了什么 –

+0

你真的应该使用片段而不是新的活动这个 – javawocky

+0

@NarendraKothamire我不知道是否有可能做这样的动画,所以没有进展到现在。 – Amit0191

回答

3

在res文件夹中创建一个名为anim的文件夹,并将以下xml文件复制到anim文件夹。

pull_in_right.xml

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

push_out_righ.xml

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

及以下代码添加到第二活动的onCreate()

overridePendingTransition(R.anim.pull_in_right, 
        R.anim.push_out_left); 
+0

动画不会在活动中滑动。它将活动推到一边。 – Amit0191

+0

将所有X轴替换为Y轴并调整持续时间 – userDroid

+0

它将仅从Y轴推动活动。新活动不会滑过以前的活动。 – Amit0191

0

创建活动,其覆盖这些2种方法:

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    this.overridePendingTransition(R.anim.animation_slide_in_right, R.anim.animation_slide_out_left); 
} 


public void onBackPressed() { 
    super.onBackPressed(); 
    this.overridePendingTransition(R.anim.animation_slide_in_left, R.anim.animation_slide_out_right); 
} 

任何想要幻灯片动画的活动都需要扩展这个类。

animation_slide_in_right.xml

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

animation_slide_out_left.xml

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

animation_slide_in_left.xml

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

animation_slide_out_right.xml

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