2015-05-14 6 views
3

Как установить цвет фона для активности до setContentView. У меня есть активность, которая требует много времени для загрузки, мне нужно сохранить белый цвет до тех пор, пока активность не завершит загрузку.Установите начальный цвет фона перед загрузкой

+1

Попробуйте добавить блесну в этой деятельности и сделать фон прозрачного –

+0

Make 'rootView' фон белого до вашего Загрузка, а затем сделать его другой цвет после загрузки сделана –

+0

@MD Я попробовал этот' GetWindow(). GetDecorView () .findViewById (android.R.id.content) .setBackgroundColor (0xffffffff); 'но он не работает. – AVEbrahimi

ответ

4

Я думаю, это именно то, что вам нужно.

Сначала определите цвет в значениях/colors.xml

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

Создайте файл 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" /> 
+0

Пожалуйста, прочитайте вопрос еще раз. Что нужно OP? –

+0

Да, прочитайте еще раз. Насколько я понял, OP хочет сохранить активность фона белым непосредственно перед тем, как он правильно загрузится. И это послужит его требованию. @MD – NarendraJi

+0

Что сказал OP? 'Мне нужно сохранить белый цвет до тех пор, пока активность не завершит загрузку.' –

0

в вашем OnCreate добавить следующий

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

и при нажатии на кнопку добавить следующее перед использованием намерения

Spinner.setVisibility(View.VISIBLE); 
+2

Пожалуйста, прочитайте вопрос еще раз. Что нужно OP? –

1

Вы можете сделать одно из следующих действий:

setContentView может многократно повторяться в жизненном цикле активности. Таким образом, вы можете просто установить другой файл макета, который просто отображает фон по мере необходимости, и как только вы закончите загрузку g, позвоните по телефону setContentView, чтобы загрузить фактический макет!

ИЛИ

Вы можете просто управлять всем этим в одном файле макета, давая белый цвет фона на ваш взгляд корня, чем показать/скрыть нужный раздел, как требуется!

+0

Ваш ответ верный. –

+1

@MD спасибо, я также добавил ваше предложение в качестве другого варианта. –

0

Из документации

setContentView (интермедиат layoutResID)

Установите содержание активности от ресурса макета. Ресурс будет завышен, добавив все виды верхнего уровня к активности.

Таким образом, это не представляется возможным дать некоторые цвета фона перед тем setContentView()

Но попробуйте

  • Избегайте слишком много кода в onCreate() из Activity.

  • Использование AsyncTask для загрузки данных & показать progressbar пользователю

  • Или вы можете реализовать некоторые splash screen перед загрузкой основного Activity.

Смежные вопросы