当我通过动画调用新活动时,背景变黑,所以我想删除黑色背景,那么我该如何实现呢? ?对于我使用的动画
getWindow().setBackgroundDrawableResource(R.drawable.mainbg_);
overridePendingTransition (R.anim.push_up_in,0);
答案 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.
希望它有一些用处..