У меня была та же проблема, и я использовал эту технику для ее решения:
Сначала я добавил xml-файл в папку res / values, которая называлась dimension.xml. Это выглядит так:
<?xml version="1.0" encoding="utf-8" ?>
<resources>
<dimen name="my_margin">5dip</dimen>
</resources>
Во-вторых, в моем коде я получил пиксельный эквивалент этого поля следующим образом (обратите внимание, что я использую Xamarin, так что это код C #, но чистая версия Java должна быть очень похожа):
int myMarginPx = Resources.GetDimensionPixelSize(Resource.Dimension.my_margin);
Наконец, я создаю параметры макета:
LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.FillParent, LinearLayout.LayoutParams.WrapContent);
layoutParams.SetMargins(myMarginPx, myMarginPx, myMarginPx, myMarginPx);