0 / 0 / 0
Регистрация: 09.03.2017
Сообщений: 22
|
|||||||||||
1 | |||||||||||
Алгоритм поочередного заполнения ImageView, объектами26.03.2017, 15:27. Показов 1338. Ответов 11
Метки нет (Все метки)
Доброго времени суток! Смотрите, есть Activity в нем 6 ImageView. по нажатию на каждое из них запускается галерея для выбора фото с sd карты. Так же я пытаюсь реализовать возможность сделать снимки. Изображение должно вставать на свободный ImageView. Реализовал такую конструкцию для решения этой задачи:
Кликните здесь для просмотра всего текста
CHECK_img - это переменная для того что бы отметить занятое ImageView но она не работает должным образом. Если, например, во второе ImageView добавить изображение из галереи то снимок добавляется в третье, а первое ImageView остается пустым. Подскажите как лучше можно реализовать заполнение свободного ImageView по порядку. Сам новичок поэтому на ум ничего не приходит. Заранее спасибо! Вот полный код Активити: Кликните здесь для просмотра всего текста
0
|
26.03.2017, 15:27 | |
Ответы с готовыми решениями:
11
Скопировать картинку из одной ImageView в другую ImageView Выделение участка на TImage для заполнения его объектами Алгоритм заполнения множества Алгоритм заполнения матрицы |
114 / 120 / 26
Регистрация: 29.01.2014
Сообщений: 609
|
|
26.03.2017, 18:22 | 2 |
вау. вот это IF. для начала посмотрите что такое SWITCH.
я бы реализовал это примерно так, взял бы массив с 6-ю ячейками и в них булеаны. и сделал бы рандом, который будет выдавать число между 0 и 5 . когда в онАктивитиРезальт, появляется новая фотография, просим выдать нам рандом, с этим рандомом идем в массив и смотрим, если в ячейки под полученым от рандом числом есть тру, значит что в имейджвью с номером этой ячейки уже есть картинка, и просим еще раз новый рандом. если с новым рандомом мы получаем фолс, значит ничего там не лежит и меняем на тру и ставим картинку в имейдж вью с номером который получили. в общем такая идея, еще нужно оптимизировать , т.к когда останется одна ячейка рандом будет туда долго попадать, по этому нужно изменять промежуток рандома.
0
|
0 / 0 / 0
Регистрация: 09.03.2017
Сообщений: 22
|
|
26.03.2017, 18:42 [ТС] | 3 |
Да, что намудрил с if /else начинаю потихоньку осознавать, с рандомом тоже как то заморочено, хочется сделать чтобы было по порядку а не в разброс.
0
|
114 / 120 / 26
Регистрация: 29.01.2014
Сообщений: 609
|
|
26.03.2017, 18:53 | 4 |
так еще проще. массив, бежите по массиву, в первой ячейке в которой фолс, меняете на тру и в имедж вью с ее индексом вставляете картинку. А еще проще держать в листе все 6 имейджвью и делать ImageVIew.getDrawable()
если возвращает наль значит пустая и в нее ставим
1
|
0 / 0 / 0
Регистрация: 09.03.2017
Сообщений: 22
|
||||||
27.03.2017, 10:11 [ТС] | 5 | |||||
Вы имеете ввиду пролистать циклом for?
Добавлено через 15 часов 8 минут переделал как то так
0
|
114 / 120 / 26
Регистрация: 29.01.2014
Сообщений: 609
|
|||||||||||
27.03.2017, 10:26 | 6 | ||||||||||
Сообщение было отмечено dima40420 как решение
Решение
да. создаете 6 имеджвью, их все в лист, в он активити резальт бежите по листу фором, в первую в которой гетДравабл наль, вставляете туда картинку.
судя по вашему коду должно быть как то так:
в вашем случае
1
|
0 / 0 / 0
Регистрация: 09.03.2017
Сообщений: 22
|
|
27.03.2017, 11:39 [ТС] | 7 |
опечатался в коде там [i] вместо [а], попробуем щас с листом спасибо за совет!!
0
|
1570 / 1168 / 426
Регистрация: 08.05.2012
Сообщений: 5,219
|
|
27.03.2017, 13:03 | 8 |
Не хотел вмешиваться, но в цикле, когда найдено место и установлена картинка лучше поставить break;, чтобы во все пустые не вставить одну картинку.
0
|
114 / 120 / 26
Регистрация: 29.01.2014
Сообщений: 609
|
|
27.03.2017, 13:08 | 9 |
- совершенно верно, не обратил на это внимание. я бы изначально инициализировал как фолс. брейк посреди фор это не очень хорошая практика.
0
|
1570 / 1168 / 426
Регистрация: 08.05.2012
Сообщений: 5,219
|
|
27.03.2017, 13:15 | 10 |
Ну смысл в том, чтобы остановить выполнение после установки картинки, реализация любая на выбор.
1
|
0 / 0 / 0
Регистрация: 09.03.2017
Сообщений: 22
|
|
27.03.2017, 15:21 [ТС] | 11 |
Работает, спасибо всем)
0
|
114 / 120 / 26
Регистрация: 29.01.2014
Сообщений: 609
|
|
27.03.2017, 15:46 | 12 |
ну наконец то
1
|
27.03.2017, 15:46 | |
27.03.2017, 15:46 | |
Помогаю со студенческими работами здесь
12
Алгоритм заполнения алфавита Алгоритм заполнения области Алгоритм заполнения массива Написать программу, обеспечивающую 10 циклов поочередного включения на 1с пар индикаторов Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |