Activity with a transparent background

Marcos Vasconcelos picture Marcos Vasconcelos · Oct 24, 2011 · Viewed 8.1k times · Source

I'm creating a reusable Loading screen to use between Activities, on the LoadingActivity I added a semi transparent background resource, but I'm unable to see the old Activity.

public class LoadingActivity extends Activity {
    public static int REQUEST_LOADING_SCREEN = 40;

    @Override
    protected void onCreate(Bundle savedInstance) {
        super.onCreate(savedInstance);

        FrameLayout mainLayout = new FrameLayout(this);

        mainLayout.setBackgroundResource(R.drawable.background_translucent);

        LinearLayout layout = new LinearLayout(this);
        layout.setGravity(Gravity.CENTER);

        LayoutParams params = LayoutParamsFactory.newMatchFrameLP();
        params.gravity = Gravity.CENTER;
        mainLayout.addView(layout, params);

        ProgressBar bar = new ProgressBar(this);
        bar.setIndeterminate(true);
        layout.addView(bar, LayoutParamsFactory.newWrapLinearLP());

        TextView text = new TextView(this);
        text.setText("Loading...");
        layout.addView(text, LayoutParamsFactory.newWrapLinearLP());

        setContentView(mainLayout);
    }

    public static void openFor(Activity activity) {
        Intent intent = new Intent(activity, LoadingActivity.class);
        activity.startActivityForResult(intent, REQUEST_LOADING_SCREEN);
    }

    public static void closeFrom(Activity activity) {
        activity.finishActivity(REQUEST_LOADING_SCREEN);
    }
}

EDIT:

Even with:

mainLayout.setBackgroundColor(Color.TRANSPARENT);
layout.setBackgroundColor(Color.TRANSPARENT);

The background is still black

Answer

Joe picture Joe · Oct 24, 2011

Have you tried setting the theme on the activity via the manifest file?

<activity android:name=".LoadingActivity" android:theme="@android:style/Theme.Translucent.NoTitleBar.Fullscreen" />