Я бы предложил не жестко кодировать поля, а вместо этого обернуть Buttons и ImageViews в LinearLayout каждый, а затем установить интервал с помощью layout_weight, чтобы он был идеально масштабируемым.
Фактический выбор макета зависит от того, нужна ли кнопка размером 80x80, а ImageView - точно 150x150.
Например (псевдокод: очевидно, многие параметры не указаны):
<RelativeLayout>
<LinearLayout id="buttons" >
<LinearLayout layout_width = "0dp" layout_weight = "1"> <!-- 0 width is important! -->
<Button layout_gravity="center" />
</LinearLayout>
<LinearLayout layout_width = "0dp" layout_weight = "1">
<Button layout_gravity="center" />
</LinearLayout>
</LinearLayout>
<LinearLayout id="images" align with @buttons>
<LinearLayout layout_width = "0dp" layout_weight = "1">
<ImageView layout_gravity="center" />
</LinearLayout>
<LinearLayout layout_width = "0dp" layout_weight = "1">
<ImageView layout_gravity="center" />
</LinearLayout>
</LinearLayout>
</RelativeLayout>
И просто убедитесь, что "кнопки" и "изображения" LinearLayouts установлены на одинаковую высоту и заполненыширина, так что кнопки и изображения перекрываются.Подробнее о layout_weight: Что означает android: layout_weight?
Если вам не нужны кнопки и ImageViews для точного размера, подумайте также и о том, чтобы определить их по весу.Тогда независимо от того, на каком экране вы находитесь, если вы скажете кнопке взять 1/4 от нее через layout_weight, она никогда не будет искажена