android 怎么将activity 退出的动画效果关闭

android 怎么将activity 退出的动画效果关闭,第1张

在AndroidMenifest.xml文件里面的Activity声明中,增加自己的Theme声明,如下:

<activity

android:name=".MyOrderListServiceActivity"

android:theme="@style/MyTheme"

>

在values的style.xml文件里 声明 一个style,起名为MyTheme,注意这里面有我自定义的东西,涉及到动画的声明,就只有 <item name="android:windowAnimationStyle">@style/AnimationActivity</item>这一项。

<style name="MyTheme">

<!-- float_box为我们定义的窗口背景 -->

<item name="android:backgroundDimEnabled">true</item>

<item name="android:windowFrame">@null</item>

<item name="android:windowBackground">@android:color/transparent</item>

<item name="android:windowIsTranslucent">true</item>

<item name="android:windowContentOverlay">@null</item>

<item name="笑历android:windowNoTitle">true</item>

<item name="android:windowFullscreen">true</item>

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

</style>

在values的style.xml文件里 声明 一个style,起名为AnimationActivity,没错就是上面的MyTheme中的windowAnimationStyle的实现,如下:

<style name="AnimationActivity" mce_bogus="1" parent="@android:style/Animation.Activity">

<item name="android:activityOpenEnterAnimation">@anim/slide_in_bottom</item>

<item name="android:activityOpenExitAnimation">@anim/slide_out_bottom</item>

<item name="android:activityCloseEnterAnimation">@anim/slide_in_bottom</item>

<item name="android:activityCloseExitAnimation">@anim/slide_out_bottom</item>

</style>

添加世羡完以上的内容,有的机器虽然进入的动画是可用的,但是退出的动画无效,还需要在你的Activity中添加一些代码,保证animation的完美运行

添搜升拍加全局变量

protected int activityCloseEnterAnimation

protected int activityCloseExitAnimation

在OnCreate里面添加如下代码:

TypedArray activityStyle = getTheme().obtainStyledAttributes(new int[] {android.R.attr.windowAnimationStyle})

int windowAnimationStyleResId = activityStyle.getResourceId(0, 0)

activityStyle.recycle()

activityStyle = getTheme().obtainStyledAttributes(windowAnimationStyleResId, new int[] {android.R.attr.activityCloseEnterAnimation, android.R.attr.activityCloseExitAnimation})

activityCloseEnterAnimation = activityStyle.getResourceId(0, 0)

activityCloseExitAnimation = activityStyle.getResourceId(1, 0)

activityStyle.recycle()

在你的程序finish之前,需要调用如下代码:

overridePendingTransition(activityCloseEnterAnimation, activityCloseExitAnimation)

我调用的例子如下:

@Override

public void finish() {

Log.i(TAG, "finish")

super.finish()

overridePendingTransition(activityCloseEnterAnimation, activityCloseExitAnimation)

}

这样就可以了。

首先定义显示效果的动画文件:

<?xml version="1.0" encoding="utf-8"?>

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

<translate

android:fromXDelta="0"

android:toXDelta="0"

android:fromYDelta="120"

android:toYDelta="0"

android:duration="500" />

</set>

然后定义消失效果的动画文件:

<?xml version="1.0" encoding="utf-8"?>

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

<translate

android:fromXDelta="0"

android:toXDelta="0"

android:fromYDelta="0"

android:toYDelta="120"

android:duration="500" />

</颂悉set>

PopupWindow的动画显示效果是通过setAnimationStyle(int id)方法设置的,其中id为一个style的id,所以我们要在styles.xml文件伍槐中设置一个动画样式:

<style name="popwin_anim_style">

<item name="android:windowEnterAnimation">@anim/menushow</item>

<item name="android:windowExitAnimation">@anim/menuhide</item>

</style>

然后在程序中为腔樱友PopupWindow设置就成:

PopupWindow pop = new PopupWindow(view, ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT)

pop.setAnimationStyle(R.style.popwin_anim_style)


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12449087.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存