Пользовательский макет Android

Вчера я провел некоторое время, борясь с макетами Android (... или с лучшими пользовательскими макетами). Для общих целей форм из коробки, которые предлагает Android, более чем достаточно. Но когда дело доходит до более сложных случаев использования (давайте возьмем пример карусели с перекрытием изображений, которые лежат на эллиптическом пути), я быстро осознал ограничения и сложность API-интерфейсов Android. Это был мой подход:

Использование готовых макетов - это не вариант (для решения многих неуправляемых проблем), однако необходимость в графических объектах, которые могут быть добавлены в контейнер (например, ImageView), необходима для того, чтобы легко выполнять перевод, вращение, и т.д ... через встроенную анимацию.

AbsoluteLayout кажется наиболее приемлемым макетом, доступным для этой цели. Это позволяет добавлять производные объекты вида и писать свой собственный алгоритм для их позиционирования. Но ... это устарело. Это позор! Кто хочет использовать устаревший apis?

Следующее наиболее разумное, что нужно сделать, это написать свой собственный макет, подклассифицируя мистическую ViewGroup ... и вот где все это разваливается (по крайней мере, для меня). Это сложно, вводит в заблуждение и сложно сделать это так же, как написать свой собственный макет для свинга (на самом деле я делал это много лет назад, и я не забываю быть проще).

Тогда (управляемый отчаянием) подклассификация View, переопределение метода onDraw и рисование непосредственно на Canvas кажется единственным простым решением (хотя это напоминает мне дни java2D ... долгие часы, потраченные на достижение высоких 1% вашего проект), но затем вы отказываетесь от удобных встроенных API-интерфейсов анимации, которые вы хотите применить к графике, нарисованной на холсте.

Вывод заключается в том, что, если я что-то упустил, текущая архитектура Android немного далека от парадигмы программирования, предлагаемой некоторыми другими технологиями пользовательского интерфейса, такими как flash или javafx (я могу легко реализовать описанную выше карусель в javafx и flash). Причина в том, что, например, в javafx, объект Scene (сравнимый с концепцией представления Android) по умолчанию предлагает абсолютную компоновку. Затем вы можете применить другие макеты из коробки, если хотите. Но для сценариев, где необходим пользовательский макет, вам не нужно ничего делать.

Я немного удивлен, что эта опция не доступна в Android, в конце концов, это довольно распространенная потребность, которая решается другими технологиями пользовательского интерфейса. Мне все еще нравится думать, что есть 5-й вариант в Android, который я не нашел. Любой эксперт, который мог бы предоставить некоторую информацию по теме?

Благодарю.