具有透明背景的活动

时间:2011-10-24 18:34:30

标签: android android-layout android-image android-activity

我正在创建一个可重复使用的加载屏幕以在活动之间使用,在LoadingActivity上我添加了一个半透明的背景资源,但我无法看到旧的活动。

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);
    }
}

编辑:

即使:

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

背景仍为黑色

1 个答案:

答案 0 :(得分:18)

您是否尝试通过清单文件在活动上设置主题?

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