加载前设置初始背景颜色

时间:2015-05-14 05:56:11

标签: android android-activity

如何在setContentView之前设置活动的背景颜色。 我有一个需要花费大量时间来加载的活动,我需要保持背景为白色,直到活动完成加载。

4 个答案:

答案 0 :(得分:6)

我想这正是您所需要的。

首先在values / colors.xml中定义颜色

<resources>
    <color name="background">#FFFFFF </color>
</resources>

在res /值中创建一个引用该颜色的themes.xml文件:

<resources>
 <style name="MyTheme" parent="@android:style/Theme.Light"> 
  <item name="android:windowBackground">@color/background</item>
 </style>
</resources>

...然后在AndroidManifest.xml中将此指定为您要使用的活动的主题。

<activity
        android:name=".MyActivity"
        android:theme="@style/MyTheme" />

答案 1 :(得分:1)

您可以执行以下操作之一:

setContentView可以在活动生命周期中多次调用,因此您可以根据需要设置另一个只显示背景的布局文件,一旦完成加载,再次调用setContentView加载实际布局!

您可以在一个布局文件中管理所有这些,方法是为根视图提供白色背景颜色,而不是根据需要显示/隐藏所需的部分!

答案 2 :(得分:0)

在你的oncreate中添加以下内容

Spinner = (ProgressBar) findViewById(R.id.LoginPageProgressBar);
    Spinner.setVisibility(View.GONE);

当您单击该按钮时,在使用意图

之前添加以下内容
Spinner.setVisibility(View.VISIBLE);

答案 3 :(得分:-1)

来自文档

  

setContentView(int layoutResID)

     

从布局资源设置活动内容。资源将是   膨胀,将所有顶级视图添加到活动中。

因此,在setContentView()

之前无法提供一些背景色

但是试着

  • onCreate()的{​​{1}}中避免使用太多代码。

  • 使用Activity加载数据&amp;向用户显示AsyncTask

  • 或者您可以在加载主progressbar之前实施一些splash screen