Como manter várias camadas de ImageViews e manter sua proporção com base no maior?

Suponha que eu tenha várias imagens que eu preciso colocar uma sobre a outra, algumas podem ter algum tipo de animação aparecendo e algumas podem até ser arrastáveis.

O maior deles, que geralmente ocupa toda a tela, seria a parte inferior da coordenada Z (vamos chamá-la de backgroundImageView), enquanto todos os outros aparecem em cima dela (e em cima de outros).

igual a:

backgroundImageViewimageView1, centralizado.imageView2, a 60%, 60% do canto superior esquerdo...

Se eu usar um FrameLayout (que parece ser a melhor solução), o backgroundImageView teria seu tamanho adequado, mas como posso forçar as outras camadas a se redimensionarem de acordo?

Eu acho que preciso de alguma forma chegar onde colocar as outras camadas e como definir seus tamanhos.

A maneira mais fácil é garantir que todas as camadas tenham exatamente o mesmo tamanho, mas isso pode exigir muita memória e ficar muito lento ao animar ou arrastar exibições. Seria um desperdício enorme se algumas das camadas tivessem um conteúdo muito pequeno.

questionAnswers(2)

yourAnswerToTheQuestion