Как изменить размер и положение Drawables внутри LayerDrawable в Android

У меня есть LayerDrawable, который должен отображать 5 растровых изображений. 1 фон и 4 значка (который может быть различным для каждого LayerDrawable), как сетка. К сожалению, эти значки не имеют той же ширины, что и высота. Моя проблема состоит в том, чтобы изменять их размеры, сохраняя их соотношение и помещая их в свою позицию (1-4 значка, 5 фона):

================== | | | | | 1 | | 2 | |------.5 .------| |------. .------| | 3 | | 4 | | | | | ================== 

Если я Gravity.CENTER размер этих растровых изображений, дайте им Gravity.CENTER они больше не будут помещаться внутри границ прямоугольника фона. Если я покину Gravity.CENTER они, похоже, будут перемасштабированы, как только я вызову layerDrawable.setLayerInset(numlayer, left, top, right, bottom) . Каков правильный способ сделать это? Как я могу сохранить их соотношение при правильном размещении? То, что я также не мог понять до сих пор, заключается в том, почему getIntrinsicWidth / Height из BitmapDrawable возвращает что-то еще (меньше), чем getWidth / Height из исходного растрового изображения.
То, что я пробовал:
1. Получая их из XML, помещая внутри себя «фиктивный чертеж» и заменяя его результатом, описанным выше. 2. Создайте LayerDrawable внутри моей Программы, передавая все чертежи внутри. Кажется, что setLayerInset не влияет, или я вижу только Background (который был элементом 0 внутри моего Drawable Array)
3. Расширение LayerDrawable и попытка отслеживать что угодно самостоятельно без разумных результатов

    BitmapDrawable , dy default, заполняет его границы заданным Bitmap . Если вы начнете использовать Gravity , Bitmap будет находиться в соответствии с данным Gravity . Я полагаю, что в вашем случае лучший выбор – создать свой собственный Drawable .

    Что касается методов getIntrinsic [Height | Width], они возвращают фактический размер базового Bitmap который может отличаться, если система изменила его размер при загрузке (например, изображение hdpi, загруженное на экран mdpi).