Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
nuroraf
1 / 1 / 3
Регистрация: 16.09.2013
Сообщений: 292
1

Заменить белый фон перед запуском MainActivity

07.07.2018, 18:51. Просмотров 392. Ответов 5
Метки нет (Все метки)

Ребята, я создал новый layout и хочу, чтобы он на 5 секунд показывался при запуске приложения. Сейчас перед первым запуском примерно 5 сек показывается белый фон.
Вот мой код:

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
public class MainActivity extends AppCompatActivity {
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.splash);
 
        ///////// Display logo during 5 seconds /////////
        new CountDownTimer(5000,1000) {
 
            @Override
            public void onTick(long l) {
            }
 
            @Override
            public void onFinish() {
 
                setContentView(R.layout.activity_main);
 
            }
        } .start();
        ///////// /////////
Но он почему-то не работает

Попробовал создать новую активность SplashActivity, так работает, но все равно перед этой активити выскакивает белый фон. Это вообще не варик ((
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.07.2018, 18:51
Ответы с готовыми решениями:

Рендеринг активити перед запуском
Доброго времени суток. Есть две активити, вторая открывается по кнопке из первой. Во второй...

Белый фон при прокрутке listview и actionbar в android 2.1
При прокрутке ListView на Android 2.3 появляется белый фон. Ставил Cache Color Hint на прозрачный...

Видео перед запуском
Ребят, такой вопрос. Как сделать запуск видео при загрузке программы (перед появлением формы). на...

Запустить программу перед запуском ОС
Здравствуйте Как загрузит программу перед начало работы операционной системы? Я хочу чтобы мая...

Предоптимизация сайта перед запуском.
Вот собрался скоро запустить этот сайт и купить хороший хостинг и соответствующий домен. Домен...

5
ExFau$t
683 / 573 / 132
Регистрация: 08.05.2012
Сообщений: 2,829
07.07.2018, 19:02 2
Запустить SplashActivity, как лаунчер, и через 5 сек. вызвать MainActivity с setContentView(R.layout.activity_main).
0
nuroraf
1 / 1 / 3
Регистрация: 16.09.2013
Сообщений: 292
07.07.2018, 19:05  [ТС] 3
ExFau$t,
Но в таком случае, белый фон на пару сек запускается перед СплэшАктивити(((
Вызываю МейнАктивити в методе finish через Интент.
0
Mail-up
30 / 28 / 8
Регистрация: 07.01.2017
Сообщений: 205
08.07.2018, 00:23 4
del

Добавлено через 6 минут
Что бы нормально сделать тут нужно сначала запилить сплэш что бы избавиться от белого фона, а потом пилить лайаут
0
ExFau$t
683 / 573 / 132
Регистрация: 08.05.2012
Сообщений: 2,829
08.07.2018, 00:54 5
Короче, нужно показать сначала первую активити, там где твой чудесный layout, затем вызвать основную с activity_main. Это базовые вещи, вроде даже есть в коробочном варианте.
Что там у тебя угадывать не охота.
0
nuroraf
1 / 1 / 3
Регистрация: 16.09.2013
Сообщений: 292
08.07.2018, 07:50  [ТС] 6
Решил проблему:
Добавил новый стиль без акшнбара
Java
1
2
3
    <style name="splashScreenTheme" parent="Theme.AppCompat.NoActionBar">
        <item name="android:windowDisablePreview">true</item>
    </style>
Вторая строчка избавляет от белого фона перед запуском активити.

Таймер обратного отсчета добавил в SplashActivity

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
public class SplashActivity extends AppCompatActivity {
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.splash);
 
        ///////// Display logo during 1 second /////////
        new CountDownTimer(1000,1000) {
 
            @Override
            public void onTick(long l) {
            }
 
            @Override
            public void onFinish() {
 
                Intent intent = new Intent(SplashActivity.this, MainActivity.class);
                startActivity(intent);
                finish();
            }
        } .start();
        ///////// /////////
    }
}
И сделал ее главной в манифесте, как подсказали выше:

Java
1
2
3
4
5
6
7
8
9
        <activity android:name="com.projects.myproject.SplashActivity"
            android:theme="@style/splashScreenTheme">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
 
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
 
        </activity>
Всем спасибо!
0
08.07.2018, 07:50
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.07.2018, 07:50

Проверка на доступность БД перед запуском
Добрый день всем. Есть отчет (написанный на vba + sql, в excel файлике), который перебирая N...

Проверка прав перед запуском
Добрый день. Имеется программа, которая должна запускаться под root. Как лучше сделать проверку,...

Перезагрузка пк перед запуском Windows
Добрый вечер. Суть проблемы в следующем. После переустановки windows с 10 на 7 на форматированный...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru