Создание настраиваемой масштабируемой и масштабируемой ViewGroup, которая расширяет ConstraintLayout

Я пытаюсь включить пользовательский макет (например, ViewGroup), который расширяет ConstraintLayout (так что я могу добавить дочерние представления с ограничениями позиции), которые пользователь должен иметь возможность панорамирования и масштабирования. Я пробовал несколько способов добиться этого; в том числе:

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

Я считал, что просто использовал какую-то 2D-графику или библиотеку разработки игр, чтобы как-то добиться такого макета, но я чувствую, что это добавит ненужное раздувание в мое приложение.

Примечание. Я использую Kotlin (как вы можете видеть в моем коде выше), но даже если кто-то может помочь мне на Java, я всегда могу преобразовать его сам.