0

ビューの layoutMarginBottom をピクセルではなく dp で設定したいのですが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 に答える