如何在slide_left动画期间删除开始新活动之间的黑色背景?

时间:2011-06-24 13:18:13

标签: android

当我通过动画调用新活动时,背景变黑,所以我想删除黑色背景,那么我该如何实现呢? ?对于我使用的动画

 getWindow().setBackgroundDrawableResource(R.drawable.mainbg_); 
overridePendingTransition (R.anim.push_up_in,0);

6 个答案:

答案 0 :(得分:63)

设置主题对我来说不起作用,但添加了退出动画。

overridePendingTransition (R.anim.push_up_in,R.anim.hold);

对于退出动画,我只是使用了什么都不做的动画。

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <translate android:fromYDelta="0%p" android:toYDelta="0%p" android:duration="2000"/>
</set>

答案 1 :(得分:36)

所有你真正需要的,特别是如果你已经为活动设置了一个主题并且不想使用Theme.Translucent建议将以下内容添加到你的活动/应用主题:

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

答案 2 :(得分:21)

将该活动的主题设置为清单文件中的半透明

android:theme="@android:style/Theme.Translucent"

所以你的代码将是这样的

<activity android:name=".AdActivity"
        android:theme="@android:style/Theme.Translucent" />

答案 3 :(得分:9)

如果您使用的是AppCompat ActionBarActivity,则需要使用扩展Theme.AppCompat的主题

为了让我可以选择将背景透明度添加到需要它的活动(使用intent flag_activity_new_task启动的活动),但保留应用程序其余部分的背景。我扩展了我的主题并设置了透明背景选项那种风​​格。

<!-- The main theme applied to the application or activity -->
<style name="Theme.app" parent="Theme.AppCompat.NoActionBar">
    <!-- Your main app theme items go here-->
    <item name="android:windowBackground">@drawable/some_drawable</item>
</style>

<!-- Transparent background for app / activity -->
<style name="Theme.app.Translucent" parent="Theme.app">
    <item name="android:windowIsTranslucent">true</item>
    <item name="android:windowBackground">@android:color/transparent</item>
    <item name="android:colorBackgroundCacheHint">@null</item>
</style>

答案 4 :(得分:1)

在您的应用中添加以下属性,然后替换您自己的颜色:

<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.NoActionBar">
     <item name="android:windowBackground">@color/colorBackground</item>
</style>

如果使用任何overridePendingTransition(),代码对Activity Components的效果如下,则会在转换过程中产生问题,而Activity更改它似乎行为不端。所以,不要使用此代码来防止黑背景。

 android:theme="@android:style/Theme.Translucent"

                   OR

 <!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.NoActionBar">
       <item name="android:windowIsTranslucent">true</item>
</style>

答案 5 :(得分:0)

解决了我的问题是了解以下方法:

overridePendingTransition(R.anim.A,R.anim.B);

此中的第一个参数A适用于传入活动。例如如果我们从X活动转到Y并且我们应用上面的动画,则A应用于Y,B应用于X.

同样地,当我们在Back Press上从Y回到X时。如果我们申请相同: 比A应用于Y而B应用于X.

所以这意味着从Y回到X.Apply Hold Animation to X and Left to right to Y.

希望它有一些用处..