В зависимости от ваших требований, это может быть как настольный RecyclerView с бесконечной прокруткой, так и какой-нибудь движок 2d игры (на случай, если стоит использовать его для этой функции), может быть оптимальным решением для вас.
RecyclerView
В случае, если вы просто хотите сохранить некоторые объекты (графические или нет - на самом деле не имеет значения, можете ли вы упаковать их в ячейки), вы можете использовать какой-то адаптер RecyclerView с расширением для безграничной прокрутки.
Таким образом, вы можете сэкономить память, используя механизм перезаписи представлений. Используя детальные механизмы уведомления (например, перемещенный / удаленный элемент), вы даже можете добавить анимацию, если объекты движутся.
В дополнение к предлагаемому решению, подобному evrencoskun / TableView , я бы предложил взглянуть на то, как работает GridLayoutManger
в целом, вот первый пост из трех в относительно глубоком обзоре того, как работает RecyclerView
и LayoutManager
, чтобы вы могли разработать более легкое решение для вашего конкретного случая. Существует простое демонстрационное приложение , «Фиксированный двусторонний список» с опцией «Большая сетка» может дать вам некоторое представление о том, что будет построено. Вам нужно будет расширить его для работы с бесконечными списками, но это будет проще, если вы понимаете внутреннее устройство.
2D двигатель
Если идея состоит в том, чтобы над плитками иметь произвольную графику с произвольными размерами, а эта функция является основной для вашего приложения, возможно, стоит подумать об использовании некоторого 2d-движка, такого как libdx. У них есть много примеров, как его использовать, но, конечно, вам понадобится немного памяти и времени на его изучение: libgdx wike
Собственное решение
Если ни то, ни другое не удовлетворяет вашим потребностям, я думаю, вам придется искать собственное решение с нуля. Не забывайте оптимизировать его, поскольку каждая бесконечная вещь в Android, особенно связанная с графикой, может легко привести к ошибкам нехватки памяти.