0

我想在 dp 中设置视图的 layoutMarginBottom 即layoutParams.bottomMargin = 90dp;而不是像素。我已经尝试了 dp 到像素的转换公式,但它们在每种情况下都不相同,这意味着该值与设备屏幕的密度不同。请告诉我该怎么做?在此先感谢。

4

2 回答 2

2

你可以这样设置,这里我动态排列布局边距。。

layoutparams.setMargins((int) getResources().getDimension(R.dimen.margin), 0, 
                        (int) getResources().getDimension(R.dimen.margin), 0);

首先将这些值存储在dimensions.xml文件中values folder

<?xml version="1.0" encoding="utf-8"?>
      <resources>
        <dimen name="margin">8dp</dimen> 
      </resources>
于 2012-09-29T09:44:27.590 回答
2

使用以下方法:

float marginPixels = TypedValue.applyDimension(
                    TypedValue.COMPLEX_UNIT_DIP, 90, getResources().getDisplayMetrics());
于 2012-09-29T09:45:26.280 回答