Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
SMTNKR
0 / 0 / 0
Регистрация: 09.12.2010
Сообщений: 30
#1

Смена бекграунда на андроиде - Программирование Android

11.03.2015, 13:51. Просмотров 324. Ответов 5
Метки нет (Все метки)

Всем доброго времени суток.
У меня появилась небольшая проблема. Опишу ее через "что я хочу", "что я пробовал" и "что выходит".

Что я хочу:
Я пишу программку на андроиде и хочу сделать, чтоб при включении программы на экран телефона был выведен чистый бекграунд или картинка, эта картинка провисела на экране 10000 мс, а далее она пропала и на ее месте дорисовались кнопки и прочая лабуда. Все это я хочу сделать в одной активити.

Что я пробовал:
1. Пробовал создавать два лейаута. В первом был нарисован только бекграунд. Я его вызывал, потом делал паузу в 10000мс, далее вызывал второй лейаут, который рисовал мне все остальное.
2. Пробовал сделать через один лейаут, создав в нем FrameLayout, который выводил бекграунд и LinearLayout, в котором были прорисованы кнопочки. LinearLayout изначально делал инвизиблом. В коде вызывал лейаут, далее ставил 10000мс, далее делал LinearLayout видимым.
3. Пробовал создавать многопоточность.

Что выходит:
А выходит следующее- при запуске программы показывает серый экран, бекграунд не прорисовывает, далее программа спит\ждет эти самые 10000мс, а далее рисует все вместе, а то есть бекграунд, а поверх него кнопочки. Как я понял, андроид пропускает первую прорисовку бекграунда, а сразу отдает приоритет выполнению 10000мс. Далее же прорисовывает все вместе.

Так вот, как сделать, чтоб рисовало мне картинку\бекграунд, потом с этой картинкой, показанной на экране ждало 10000мс, а далее уже выводило поверх новые кнопочки?

В пример могу привести приложение VK, думаю многие им пользовались. Так вот, в нем и реализовано такой подход. Изначально показывает синий бекграунд с логотипом пока программа не загрузится, далее же идет показ новостей и т.д.

Буду очень благодарен за помощь. Спасибо.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.03.2015, 13:51     Смена бекграунда на андроиде
Посмотрите здесь:

Смена бекграунда на андроиде - Программирование Android
Всем доброго времени суток. У меня появилась небольшая проблема. Опишу ее через "что я хочу", "что я пробовал" и "что выходит". Что...

GridView. Изменение бекграунда по нажатию - Программирование Android
Есть элемент GridView, который я вызываю через Spinner. По нажатию на один из элементов GridView, его background должен меняться на...

Простенькая программа на андроиде - Программирование Android
Требуется написать несложную программу на андроиде, вращение одного предмета в трехмерном пространстве. Кто возьмется и какая цена вопроса?

Файловые диалоги в андроиде - Программирование Android
Открыть/сохранить файл, выбрать каталог и т.д. Насколько я понял готовых как в windows нету. Может есть какие то сторонние либы ???

Запись звука на Андроиде - Программирование Android
Здравствуйте. Только начал осваивать андроид ( с Java знаком неплохо). У меня следующая задача: 1) написать диктофон 2) добавить...

Questions новичка в андроиде - Программирование Android
Недавно начал изучать андроид и возникли следующие вопросы: 1) В чем преимущество использования фрагментов по сравнению с обычным вызовом...

OpenGL в андроиде для новичка - Программирование Android
Посоветуйте примеры и учебники по применению OpenGL в андроиде. Только начал кодить на яве. Пробовал OpenGL в Delphi - базовые команды...

Авторизация на сайте с клиента на андроиде - Программирование Android
Решил написать для себя небольшое приложения для просмотра баланса у интернет-провайдера. с адроидом знаком меньше 2х недель, поэтому...

Гид для универа на андроиде - Программирование Android
Д.Д, форумчане! помогите с идеями или с разработанными проектами на тему гид для универа. нужно разработать небольшое приложение для...

Каким алгоритмом зашифровать изображения в Андроиде - Программирование Android
Здравствуйте, форумчане. Помогите, пожалуйста, разобраться. Я - заказчик программы под ОС Андроид. Программа должна сохранять...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Spelcrawler
526 / 496 / 111
Регистрация: 12.03.2014
Сообщений: 1,648
Завершенные тесты: 1
11.03.2015, 15:04     Смена бекграунда на андроиде #2
Цитата Сообщение от SMTNKR Посмотреть сообщение
3. Пробовал создавать многопоточность.
С этого места поподробнее, что не получилось?
rouze
0 / 0 / 0
Регистрация: 02.03.2015
Сообщений: 7
11.03.2015, 16:01     Смена бекграунда на андроиде #3
Делаешь 2 Активити и 2 лайоута. Для того активити, которое будет заставкой в манифесте прописываешь -

XML
1
2
3
4
<intent-filter>
<action android:name="имя_твоего_пакета.SPLASH"/>
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
В классе главного Активити в методе onCreate прописываешь типа:

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
setContentView(R.layout.main);
Thread spTimer = new Thread(){
public void run(){
try{
sleep(10000);
Intent spIntent = new Intent("имя_твоего_пакета.SPLASH");
startActivity(spIntent);
} catch (InterruptedException e){
e.printStackTrace();
}
finally{
finish();
}
}
};
spTimer.start();
Я думаю понятно, что надо рисовать 2 лайоута с одинаковым бэкграундом (один без виджетов - заставка, второй с виджетами - основной).
SMTNKR
0 / 0 / 0
Регистрация: 09.12.2010
Сообщений: 30
12.03.2015, 13:11  [ТС]     Смена бекграунда на андроиде #4
Эмм. Сделал так как ты посоветовал, заработало, но не так как нужно.
Сделал два активити. Первый- MainActivity, в который вставил твой кусок кода, второй- LoadScreenActivity, который должен нарисовать картинку при включении на 10 секунд.

То, что ты посоветовал делает следующее: Запускает MainActivity, ждет 10 секунд, а потом запускает LoadScreenActivity. Но мне ведь нужно сделать все наоборот, ибо мне нужно дальше продолжать работу в мейне.

Попробовал вставить твой кусок кода в LoadScreenActivity.

Мейн выглядел вот так:

Java
1
2
3
4
5
6
 super.onCreate(savedInstanceState);
        //this.requestWindowFeature(Window.FEATURE_NO_TITLE);
        setContentView(R.layout.main);
        
        Intent spIntent = new Intent("ua.AIDA64.Bash_im.SPLASH");
        startActivity(spIntent);
LoadScreenActivity вот так:

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 setContentView(R.layout.view_loadscreen);
 
        Thread spTimer = new Thread(){
            public void run(){
                try{
                    sleep(10000);
                    Intent spIntent = new Intent("android.intent.action.MAIN");
                    startActivity(spIntent);
                } catch (InterruptedException e){
                    e.printStackTrace();
                }
                finally{
                    finish();
                }
            }
        };
        spTimer.start();
Вроде бы теперь работает как надо- изначально выводит лейаут от LoadScreenActivity, далее с ним ждет 10 секунд. Но потом случается проблема. После 10 секунд ожидания Андроид выводит непонятное мне окно. (я никогда не использовал андроид до начала написания программы.) Скрин окна выложил во вложении. Подозреваю, что это ошибка.
Как исправить? Может другим способом решить данный вопрос?
Миниатюры
Смена бекграунда на андроиде  
androbro
323 / 283 / 59
Регистрация: 17.10.2014
Сообщений: 836
12.03.2015, 15:09     Смена бекграунда на андроиде #5
SMTNKR,
Java
1
Intent spIntent = new Intent("android.intent.action.MAIN");
неявный интент.
Если хотите открыть другое активити используйте другой конструктор:
Java
1
Intent intent = new Intent(ТекущееАктивити.this, ЗапускаемоеАктивити.class);
rouze
0 / 0 / 0
Регистрация: 02.03.2015
Сообщений: 7
12.03.2015, 16:36     Смена бекграунда на андроиде #6
Манифест выложи, возможно там придется кое-что поправить, чтобы не вылазило окно. Ну или можно сделать как androbro предложил.
Yandex
Объявления
12.03.2015, 16:36     Смена бекграунда на андроиде
Ответ Создать тему
Опции темы

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