Как извлеч нужную картинку из массива? Помогите пожалуйста!
-
Максим2014
- Сообщения: 8
- Зарегистрирован: 02 фев 2014, 09:39
Как извлеч нужную картинку из массива? Помогите пожалуйста!
Уважаемые форумчане. Разъясните начинаюиму. Как сделать следующее? Есть int [] IMAGE {R.drawable.01,R.drawable.02,...........
R.drawable.n,} Нужно что бы каждый час картинка менялась в ImageView. Как извлечь переменную системного времени я вроде бы нашел, а вот как связать массив с ImageView через Calendar, уже месяц бьюсь неполучается. Очень надеюсь на вашу поддержку.
R.drawable.n,} Нужно что бы каждый час картинка менялась в ImageView. Как извлечь переменную системного времени я вроде бы нашел, а вот как связать массив с ImageView через Calendar, уже месяц бьюсь неполучается. Очень надеюсь на вашу поддержку.
Re: Как извлеч нужную картинку из массива? Помогите пожалуйс
Этот 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.
[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.

Re: Как извлеч нужную картинку из массива? Помогите пожалуйс
еще можно попробовать AlarmManager
думаю это будет еще более Android way =)
думаю это будет еще более Android way =)
Re: Как извлеч нужную картинку из массива? Помогите пожалуйс
В принципе, если очень хочется использовать Calendar, вы можете поместить данные в HashMap. Т.е. key/value хранилище, где ключем будет дата в календаре, а значением ваша картинка. Вы можете просто устанавливать картинку по ключу просто запрашивая время и округляя его до ближайшего ключа в "хранилище".

-
Максим2014
- Сообщения: 8
- Зарегистрирован: 02 фев 2014, 09:39
Re: Как извлеч нужную картинку из массива? Помогите пожалуйс
Хорошо, а метод для вытаскивания из массива картинки по индексу? Точнее как , допустим handler, укажет что пора вытаскивать третью картинку а не под номером два?
Попробую порыть с HashMap.
Спасибо за поддержку.
Попробую порыть с HashMap.
Спасибо за поддержку.
Re: Как извлеч нужную картинку из массива? Помогите пожалуйс
Вы можете расположить картинки в порядке отображения, показанную помещать в конец, так они все будут по порядку отображаться.Максим2014 писал(а):Точнее как , допустим handler, укажет что пора вытаскивать третью картинку а не под номером два?.

-
Максим2014
- Сообщения: 8
- Зарегистрирован: 02 фев 2014, 09:39
Re: Как извлеч нужную картинку из массива? Помогите пожалуйс
HashMap реально помог. Спасибо друзья.
Теперь немогу запустить обновление картинки. Время меняю а картинка прежняя
invalidate() - не клеется ни как.
Теперь немогу запустить обновление картинки. Время меняю а картинка прежняя