Androidで幅と高さをdp単位でプログラム的に設定する 質問する

Androidで幅と高さをdp単位でプログラム的に設定する 質問する

私がやっている:

button.setLayoutParams(new GridView.LayoutParams(65, 65));

ドキュメントによると、幅と高さの単位 (上記では両方とも 65) は「ピクセル」です。これをデバイスに依存しないピクセル、つまり「dp」に強制するにはどうすればよいでしょうか?

ベストアンサー1

ディスプレイのスケール係数を使用して、dps からピクセルに変換する必要があります。

final float scale = getContext().getResources().getDisplayMetrics().density;
int pixels = (int) (dps * scale + 0.5f);

おすすめ記事