4

テーブル レイアウトのグラフィカル パラメータを指定するためにメソッド setLayoutParams を使用しようとしていますが、メソッド setLayoutParams がピクセル値とディップ値のどちらを取るかはわかりません。たとえば、次の 2 つの変数を宣言するとします。

private int blockDimension = 50; 
private int blockPadding = 2; 

そして、メソッドを呼び出します:

tableRow.setLayoutParams(new LayoutParams( (blockDimension + 2 * blockPadding) * numberOfColumnsInMineField,blockDimension + 2 * blockPadding) );

それらはピクセルと見なされますか、またはメソッドに渡されると変換されますか? そうでない場合、 Java でディップ値を設定するにはどうすればよいですか?

4

2 に答える 2

7

ピクセルが必要です。dp をピクセルに変換するには、これを使用できます。

public int getPx(int dimensionDp) {
    float density = getResources().getDisplayMetrics().density;
    return (int) (dimensionDp * density + 0.5f);
}
于 2013-07-01T15:30:09.360 に答える
0

ディップでその値が必要な場合は、画面の密度に掛ける必要があります。次の方法で取得できます。

float density = getResources().getDisplayMetrics().density
于 2013-07-01T15:29:58.157 に答える