andrid 怎么设置返回的页面效果和进入相反

 我来答
受司大人
推荐于2016-02-26 · 知道合伙人影视综艺行家
受司大人
知道合伙人影视综艺行家
采纳数:20262 获赞数:171847
毕业于浙江广厦,有一定的电脑专业基础和两年工作经验,读过相关书籍多本

向TA提问 私信TA
展开全部
/**
*
* @Description : 跳转页面的左出和右进的效果
* @Method_Name : startActivityAnim
* @param activity
* @return : void
* @Creation Date : 2015-1-5 上午10:20:37
* @version : v1.00
* @Author : JiaBin

* @Update Date :
* @Update Author : JiaBin
*/
public static void startActivityAnim(Activity activity, Class<?> cla) {
Intent intent = new Intent();
intent.setClass(activity, cla);
activity.startActivity(intent);
// 设置切换动画,从右边进入,左边退出
activity.overridePendingTransition(R.anim.in_from_right, R.anim.out_to_left);
}

那通过读原来Coder的代码(很头痛~~~)发现,如果使用我的共通方法,是可以实现客户的需求,但是更改的地方会很多,改起来很头痛,于是想使用第二种方法,通过xml配置,让每一个在AndroidManifest.xml中注册的Activity都引用配置这样就可以达到客户的效果又可以最小的程度上对项目进行更改了。下面就贴出方法:

1.首先在style.xml中声明如下代码:

<style name="AnimationActivity" parent="@android:style/Animation.Activity">
<item name="android:activityOpenEnterAnimation">@anim/push_left_in</item>
<item name="android:activityOpenExitAnimation">@anim/push_left_out</item>
<item name="android:activityCloseEnterAnimation">@anim/push_right_in</item>
<item name="android:activityCloseExitAnimation">@anim/push_right_out</item>
</style>

2.在style.xml中声明如下代码:

<style name="themeSetting">
<item name="android:windowAnimationStyle">@style/AnimationActivity</item>
</style>

3.将AndroidManifest.xml中每一个需要使用该效果的Activity的theme设置并选择该选项,代码如下:

<activity
android:name="com.nearprint.MainNewActivity"
android:label="@string/app_name"
android:screenOrientation="portrait"
android:theme="@style/themeSetting<span style="font-family: Arial, Helvetica, sans-serif;">" ></span>
以上三步就可以实现访问跳转Activity的动画的切换问题,下面贴出相应的动画文件。

in_from_right.xml

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

<translate
android:duration="500"
android:fromXDelta="100%p"
android:toXDelta="0%p" />

</set>

out_to_left.xml

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

<translate
android:duration="500"
android:fromXDelta="0%p"
android:toXDelta="-100%p" />

</set>

push_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="500" />
<alpha android:fromAlpha="0.1" android:toAlpha="1.0"
android:duration="500" />
</set>

push_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="500" />
<alpha android:fromAlpha="1.0" android:toAlpha="0.1"
android:duration="500" />
</set>

push_right_in.xml

<?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="500" />
<alpha android:fromAlpha="0.1" android:toAlpha="1.0"
android:duration="500" />
</set>

push_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%"
android:duration="500" />
<alpha android:fromAlpha="1.0" android:toAlpha="0.1"
android:duration="500" />
</set>

以上就是需要用的片段代码,有需要的自己弄一下,动画效果可以自己写,然后达到需求。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式