2011-10-24 106 views
6

我创建了一个可重复使用的加载屏幕,以在活动之间使用,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); 

背景仍然是黑色

+0

发表一些XML或代码展示你的工作与加入 –

+0

代码,background_translucent是半透明.9.png –

+0

它不看你的LinearLayout是分开的观点。 –

回答

18

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

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

我正在使用@android:style/Theme.NoTitleBar.Fullscreen,现在它按预期工作,谢谢 –

+0

您拯救了我的一天! – SILINIK