开发者

How to remove Black background between start new activity during slide_left animation?

开发者 https://www.devze.com 2023-03-15 16:41 出处:网络
When I call new activity by animation the background gets black. How can I remove remove the black background?

When I call new activity by animation the background gets black.

How can I remove remove the black background?

For the animation I'm using:

getWindow().setBackground开发者_如何学运维DrawableResource(R.drawable.mainbg_); 
overridePendingTransition (R.anim.push_up_in,0);


Setting the Theme didn't work for me, but adding an exit animation did.

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

For the exit animation, I just used an animation that does nothing.

<?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>


All you really need, especially if you already got a theme set to the activity and don't want to use the Theme.Translucent suggested is add the following to your activity/app's theme:

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


set the theme of that activity as transluscent in manifest file

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

so your code will be something like this

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


If you are using the AppCompat ActionBarActivity you will need to use a theme that extends Theme.AppCompat

To give me the option to add background transparency to just the activities that needed it (ones launched using the intent flag_activity_new_task) but keep the background for the rest of the app.. I extended my main theme and set the transparent background options in that style.

<!-- 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>


What cleared my problem was understanding following method :

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

First Argument A in this is applied to Incoming Activity. For Example If we Are going from X Activity to Y and we Apply above animation than A is applied to Y and B is Applied to X.

Similarly when we are coming back from Y to X on Back Press. if we apply SAME: than A is applied to Y and B is applied to X.

So it means while coming back from Y to X..Apply Hold Animation to X and Left to right to Y.

Hope it is of some use..


Add below attribute in your app then replace your own color :

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

Below code effects to Activity Components if you use any overridePendingTransition(),it creates issue in transition while Activity changing it seems misbehaviour.So, don't use this code for prevent black background.

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

                   OR

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

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号