Я реализую заливку с помощью алгоритма заливки в Android, а для операции рисования мы можем реализовать отмену повтора с помощью path, но как добиться этого для операции заливки без DrawingCache? Есть ли способ получить объект Path, когда я выполняю операцию FloodFill?
Отменить Повторить с помощью FloodFill android
comment
Самый простой способ - сохранить/кэшировать печатные копии ввода заливки (растровое изображение) или базовой модели растрового изображения в структуре кэша состояния, например. сериализуемая очередь. Если вы хотите иметь функцию отмены для каждого шага алгоритма заливки, вам нужно отредактировать этот алгоритм...
- person Stilzk1n   schedule 02.06.2016
comment
Можете ли вы уточнить, как я могу изменить алгоритм, поскольку я хочу иметь возможность отменить каждый шаг и не создавать несколько копий растрового изображения.
- person zek54   schedule 02.06.2016
comment
В алгоритме до: image.setPixel(x, y, замена); вы можете сохранить глубокую/твердую копию изображения в очереди отмены. Это предполагает, что вам нужно повторить весь алгоритм снова, потому что состояние (текущий узел) не будет сохранено таким образом... За исключением того, что у вас есть прослушиватель событий на растровом изображении, он не будет автоматически обновлять холст на все равно каждый setPixel...?
- person Stilzk1n   schedule 02.06.2016
comment
Не будет ли это исключение из памяти, если я продолжу сохранять копию растровых изображений в очереди и не буду отменять какое-то время?
- person zek54   schedule 02.06.2016
comment
Да, это была просто основная идея... Очевидно, из этой простой информации можно создать растровое изображение? createBitmap(int[] colors, int width, int height, Bitmap.Config config) Возвращает !!!неизменяемый!!! растровое изображение с указанной шириной и высотой, где каждому значению пикселя присвоено соответствующее значение в массиве цветов. Так что было бы нормально просто сохранить (в худшем случае сериализовать и сохранить в файл) эти части: цвета int [], int width, int height, конфигурация Bitmap.Config.
- person Stilzk1n   schedule 02.06.2016
comment
Как получить цвета [] растрового изображения?
- person zek54   schedule 02.06.2016
comment
Относительно developer.android.com/reference/android/graphics/Bitmap.html with getPixels(int[] пикселей, int offset, int step, int x, int y, int width, int height) Возвращает в Pixels[] копию данных в растровом изображении.
- person Stilzk1n   schedule 02.06.2016
comment
Хорошо, спасибо за помощь.
- person zek54   schedule 02.06.2016
comment
@ zek54 ты нашел решение? потому что у меня такая же ситуация!!!
- person Harin Kaklotar   schedule 11.01.2017