Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Android: Setting Window Background on launched Activity

So I've read Romain Guy's blog post on setting the Window background and percieved performance, and am trying to emulate that. It is such a simple solution and not sure why I can't get this working, but the activity simply refuses to pick-up the directed background.

I have a ListView that onListItemClick launches a new Activity, one that takes 3-5 seconds to fully load. While the user is waiting, I'd like to draw a windowBackground so that they 'see' the activity before it is actually ready. Here's my code:

AndroidManifest snippet for the launched Activity:

<activity          android:name=".activity.EditorActivity"         android:screenOrientation="portrait"         android:windowBackground="@drawable/background_editor"> 

The XML layout for the EditorActivity:

<?xml version="1.0" encoding="utf-8"?> <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"     android:layout_width="match_parent"     android:layout_height="match_parent">     <TextView      android:id="@+id/editor"     android:layout_height="wrap_content"     android:layout_width="match_parent"     android:text="Editor" /> </FrameLayout> 

And finally, the drawable being set in the Manifest, background_editor.xml:

<?xml version="1.0" encoding="utf-8"?> <bitmap xmlns:android="http://schemas.android.com/apk/res/android"     android:src="@drawable/editor_bg"     android:tileMode="repeat" /> 

editor_bg is a .png file located int he drawable folder.

The end result is the EditorActivity gets launched, and all I see is the default black background with the "Editor" text displayed in white (I added that to test that the XML file was loading correctly.

I've also tried setting the background of the FrameLayout and TextView to transparent via android:background="@android:color/transparent", thinking maybe they were defaulting to a black background, but no luck.

It's been a long few days, I'm sure I am missing something simple... any obvious mistakes I am making here?

like image 593
Unpossible Avatar asked Jan 29 '11 16:01

Unpossible


People also ask

How to set window background in Android?

Calling getWindow(). setBackgroundDrawable() from your Activity changes the background of the window by changing the DecorView 's background drawable. As mentioned before, this setup is very specific to the current implementation of Android and can change in a future version or even on another device.

How do I start an activity background?

Intent dialogIntent = new Intent(this, Adscreen. class); dialogIntent. addFlags(Intent. FLAG_ACTIVITY_NEW_TASK); startActivity(dialogIntent);

What is restrict to launch in Android?

Android 10 (API level 29) and higher place restrictions on when apps can start activities when the app is running in the background. These restrictions help minimize interruptions for the user and keep the user more in control of what's shown on their screen.


1 Answers

Try setting window background before launching the new activity programmatically.

getWindow().setBackgroundDrawableResource(R.drawable.my_drawable); 
like image 147
Zarokka Avatar answered Sep 21 '22 18:09

Zarokka