从左到右模式启动活动

Unk*_*own 28 android android-animation

我正面临一个问题.

我有三个活动,我需要开始左侧滑动的新活动.

Activity1

Activity2

Activity3
Run Code Online (Sandbox Code Playgroud)

手段 在此输入图像描述

当我点击按钮时,新活动不应该像android行为一样直接显示.

我想要从右侧进行新活动并在当前屏幕上显示.

任何人都可以提供指导.这是动画或其他任何东西.

Med*_*bes 104

我将尝试使用以下示例帮助您:

RES /动画/ trans_left_in.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"> 
<translate 
        android:fromXDelta="100%p" 
        android:toXDelta="0" 
        android:duration="@android:integer/config_longAnimTime"/>
</set>
Run Code Online (Sandbox Code Playgroud)

RES /动画/ trans_left_out.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <translate
         android:fromXDelta="0" 
         android:toXDelta="-100%p" 
         android:duration="@android:integer/config_longAnimTime"/>
</set>
Run Code Online (Sandbox Code Playgroud)

RES /动画/ trans_right_in.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">

    <translate 
        android:fromXDelta="-100%p" 
        android:toXDelta="0" 
        android:duration="@android:integer/config_longAnimTime"/>
</set>
Run Code Online (Sandbox Code Playgroud)

RES /动画/ trans_right_out.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <translate
         android:fromXDelta="0" 
         android:toXDelta="100%p" 
         android:duration="@android:integer/config_longAnimTime"/>
</set>
Run Code Online (Sandbox Code Playgroud)

SRC /活性2

@Override
public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_traces);
        overridePendingTransition(R.anim.trans_left_in, R.anim.trans_left_out);
...}

@Override
public void onBackPressed() {
    super.onBackPressed();
    overridePendingTransition(R.anim.trans_right_in, R.anim.trans_right_out);
}
Run Code Online (Sandbox Code Playgroud)


The*_*der 19

启动活动,然后只应用过渡效果.有关更多信息,如何继续这里只是访问这里和源代码示例访问.对于任何查询,请随时发表评论.


nik*_*kar 11

更好的方法是创建一个样式如下:

<style name="mytheme" parent="@android:style/Theme.Black">
    <item name="android:windowAnimationStyle">@style/theme</item>
</style>

<style name="theme">
    <item name="android:windowEnterAnimation">@anim/fade_in</item>
    <item name="android:windowExitAnimation">@anim/fade_out</item>
</style>
Run Code Online (Sandbox Code Playgroud)

然后使用android:theme标签将此样式应用于清单文件中的活动.


Bas*_*rif 5

这里是,

Intent intent=new Intent(Activity1.this,Activity2.class);
startActivityForResult(intent,0);
getActivity().overridePendingTransition( R.anim.righttoleft, R.anim.stable );
Run Code Online (Sandbox Code Playgroud)

这是动画righttoleft.xml,

<set xmlns:android="http://schemas.android.com/apk/res/android"
android:shareInterpolator="false" >

    <translate
          android:duration="500"
          android:fromXDelta="-100%"
          android:fromYDelta="0%"
          android:toXDelta="0%"
          android:toYDelta="0%" />
</set>
Run Code Online (Sandbox Code Playgroud)

和stable.xml

<?xml version="1.0" encoding="UTF-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
  <alpha android:fromAlpha="1.0" android:toAlpha="1.0" 
      android:interpolator="@android:anim/accelerate_interpolator" 
      android:duration="500"
      android:repeatCount="0"/>
</set>
Run Code Online (Sandbox Code Playgroud)