Модераторы: javastic, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Cтатус бар, Splash Screen 
:(
    Опции темы
smke444
  Дата 25.5.2009, 15:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 11.6.2007

Репутация: нет
Всего: нет



Нужна помощь по организации логики заставки SplashScreen .

То есть главный поток который инициализирует данные и есть параллельный поток который показывает в это время  заставку и процесс загрузки скажем в виде статус бара загрузки – скажем как во многих играх от Gameloft

Суть проблемы – как отобразить в статус баре пропорциональность загрузки ресурсов (как на играх от Gameloft или как в флеше).

Нужна всего лишь логика реализации... Заранее спасибо

PM MAIL   Вверх
eugine_s
Дата 25.5.2009, 15:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 581
Регистрация: 14.11.2007
Где: Киев

Репутация: 17
Всего: 17



Логика: поток 1 (который загружает ресурсы)  знает (если не знает, значит нужно его научить, чтобы знал smile) сколько ресурсов он загрузил. потоку 2 нужно знать сколько было загружено. 
Суть задачи из потока1 передать в поток2 какое-то число (или потоку2 забрать из потока1 число). 
Я бы в потоке2 реализовал какой-то Listener и в потоке1 информировал бы этот листенер о событии.


PM MAIL   Вверх
smke444
Дата 25.5.2009, 17:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 11.6.2007

Репутация: нет
Всего: нет



Ну допустим логика понятна , но все-таки как-то нескладно это.
Допустим в 1 потоке у меня 20 загрузок изображений и больших и маленьких – в этом случае как быть? Сделать универсальный метод лоадер для картинок, рассчитать общую величину загружаемых картинок и в зависимости от объема картинки информировать об этом listener... Ну помимо картинок есть и RMS и может другие тяжелые процессы – здесь с подсчетом времени загрузки будет по тяжелей....

В общем такой подход понятен -  все-таки надеялся что существует более элегантный подход.
Но все равно не дает покоя – как это реализовано плавно в gameloft ? –  может они в процессе тестирования на разных моделях телефонов – вычисляют самой длительный интервал загрузки и после этого заставляют крутить одинаковое вычисленное время этот SplashScreen  ?

В принципе если нет других подходов – Вопрос снят. Спасибо 

PM MAIL   Вверх
math64
Дата 26.5.2009, 09:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2505
Регистрация: 12.4.2007

Репутация: 8
Всего: 72



Код

public interface Resource {
void load();
int getWeight();
}
void load(Resourse[] resourses) {
  long[] loadTimes = new long[resourses.length];
  int totalWeight = 0;
  for (int i= 0; i < resourses.length; i++) totalWeight += resourses.getWeight();
  long start = System.currentTimeMillis();
  int weight = 0;
  for (int i= 0; i < resourses.length; i++) {
    System.out.println(weight + " of " + totalWeight + " loaded");
    resourses[i].load();
    weight += resourses.getWeight();
    long end = System.currentTimeMillis();
    loadTimes[i] = start - end;
    start = end;
    System.out.println(loadTimes[" + i + "] = " loadtimes[i]);
  }
}

Запустить на эмуляторе.
А потом использовать распечатанное время загрузки для определения веса ресурса. Для разных моделей телефона они вряди будут сильно отличаться (а если отличается - создать отдельный jar для этой модели)
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса

  • Прежде чем задать вопрос прочтите это!
  • Литература по Java находится здесь.
  • Литературу по Java обсуждаем здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда

  • FAQ раздела лежит здесь!
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java ME (J2ME) | Следующая тема »


 




[ Время генерации скрипта: 0.0666 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.