1. ホーム
  2. アンドロイド

[解決済み】Androidで、dp単位で幅と高さをプログラムにより設定する。

2022-03-25 16:16:08

質問

しています。

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

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

解決方法は?

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

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