Как извлеч нужную картинку из массива? Помогите пожалуйста!

Ответить
Максим2014
Сообщения: 8
Зарегистрирован: 02 фев 2014, 09:39

Как извлеч нужную картинку из массива? Помогите пожалуйста!

Сообщение Максим2014 » 02 фев 2014, 15:28

Уважаемые форумчане. Разъясните начинаюиму. Как сделать следующее? Есть int [] IMAGE {R.drawable.01,R.drawable.02,...........
R.drawable.n,} Нужно что бы каждый час картинка менялась в ImageView. Как извлечь переменную системного времени я вроде бы нашел, а вот как связать массив с ImageView через Calendar, уже месяц бьюсь неполучается. Очень надеюсь на вашу поддержку.

Аватара пользователя
altwin
Сообщения: 1951
Зарегистрирован: 13 ноя 2013, 14:46

Re: Как извлеч нужную картинку из массива? Помогите пожалуйс

Сообщение altwin » 03 фев 2014, 00:26

Этот handler стартует Runnable через 100 милисекунд(1 час = 3600000 ms):
[syntax=java]
private Handler handler = new Handler();
handler.postDelayed(runnable, 100);[/syntax]
Далее просто реализация Runable:
[syntax=java]
private Runnable runnable = new Runnable() {
@Override
public void run() {
/* тут меняем картинку */
foobar();
/* а это тот самый "хак" */
handler.postDelayed(this, 100);
}
};[/syntax]
Сам прикол в том, чтобы в конце сказать handler снова ждать интервал и запускать Runnable. Это будет работать каждые 100 ms, как работало бы scheduleAtFixedRate() TimerTask!. Если нужно остановить handler.removeCallback(runnable)

P.S> сам не пробывал, но должно работать, плюс в том, что handler -это более Android way, чем TimeTask.
Изображение

Аватара пользователя
klblk
Сообщения: 1097
Зарегистрирован: 18 окт 2012, 11:17
Откуда: г. Красноярск

Re: Как извлеч нужную картинку из массива? Помогите пожалуйс

Сообщение klblk » 03 фев 2014, 05:52

еще можно попробовать AlarmManager
думаю это будет еще более Android way =)

Аватара пользователя
altwin
Сообщения: 1951
Зарегистрирован: 13 ноя 2013, 14:46

Re: Как извлеч нужную картинку из массива? Помогите пожалуйс

Сообщение altwin » 03 фев 2014, 11:54

В принципе, если очень хочется использовать Calendar, вы можете поместить данные в HashMap. Т.е. key/value хранилище, где ключем будет дата в календаре, а значением ваша картинка. Вы можете просто устанавливать картинку по ключу просто запрашивая время и округляя его до ближайшего ключа в "хранилище".
Изображение

Максим2014
Сообщения: 8
Зарегистрирован: 02 фев 2014, 09:39

Re: Как извлеч нужную картинку из массива? Помогите пожалуйс

Сообщение Максим2014 » 03 фев 2014, 12:08

Хорошо, а метод для вытаскивания из массива картинки по индексу? Точнее как , допустим handler, укажет что пора вытаскивать третью картинку а не под номером два?
Попробую порыть с HashMap.
Спасибо за поддержку.

Аватара пользователя
altwin
Сообщения: 1951
Зарегистрирован: 13 ноя 2013, 14:46

Re: Как извлеч нужную картинку из массива? Помогите пожалуйс

Сообщение altwin » 03 фев 2014, 12:20

Максим2014 писал(а):Точнее как , допустим handler, укажет что пора вытаскивать третью картинку а не под номером два?.
Вы можете расположить картинки в порядке отображения, показанную помещать в конец, так они все будут по порядку отображаться.
Изображение

Максим2014
Сообщения: 8
Зарегистрирован: 02 фев 2014, 09:39

Re: Как извлеч нужную картинку из массива? Помогите пожалуйс

Сообщение Максим2014 » 07 фев 2014, 23:22

HashMap реально помог. Спасибо друзья.
Теперь немогу запустить обновление картинки. Время меняю а картинка прежняя :( invalidate() - не клеется ни как.

Ответить