• ベストアンサー

android開発、setMargins

setMargins(10, 10, 10, 10); とそのまま書くと単位がpx指定になっているようですが、 これをdp指定にすることはできるのでしょうか。

質問者が選んだベストアンサー

  • ベストアンサー
noname#177743
noname#177743
回答No.1

setMarginsでdpの値を指定して設定することはできないようですね。 dpの値は、densityをかければpxに変換出来ますから、予め変換のメソッドでも用意しておいて、それで値を変換して利用すればいいんじゃないでしょうか。 setMargins(DPtoPX(x), DPtoPX(y), DPtoPX(w), DPtoPX(h)); こんな感じで。 // 変換関数メソッド float DPtoPX(float dp){ float d = getContext().getResources().getDisplayMetrics().density; return dp * d; }

hukazuo
質問者

お礼

ありがとうございました。 無事解決出来ました。

関連するQ&A

専門家に質問してみよう