java.net
плюс AsyncTask
или поток, для ее преобразования в Bitmap используется BitmapFactory.decodeStream и т.п. это тоже асинхронно нужно делать, затем она помещается в ImageView, который изначально должен иметь правильный размер чтобы не "прыгало", и в основном уже готово, конечно в первый раз не так просто реализовать, но затем можно копировать это из проекта в проект, или вынести в свою библиотеку, которая будет заниматься не только этим, но и, например, предоставлять удобный класс на базе ListView/GridView со встроенным функционалом для картинок.Как правильно реализовать динамическое добавление объектов на форму?
1/1000000-ая занятость оперативки
Если создаваться пользователем, то какой интерес создавать шарики, если они все одинаковые? Молекулы в 100 раз интереснее.
Или вот - как вы собираетесь моделировать кристаллическую структуру льда из шариков? Да и движение шариков показать сложнее, как можно увидеть вращение шарика? Если шарик идеальный, то никак!