2011-10-17 1 views
6

これはそれぞれの側に1ピクセルでパディングを与える方法ディップユニットないPXユニット

public void setPadding (int left, int top, int right, int bottom) 

someview.setPadding(1,1,1,1); 

とsetPaddingとパディングを与えます。 1pxの代わりに1dipを与えるにはどうすればよいですか?

左下、右上、下端の値はピクセル単位で表示されますが、ディップでコード内にプログラムで値を与えるにはどうすればよいですか?

おかげ

答えて

19

次のコードを使用しdpに与えられた値からのピクセルを取得します。

ここで、valueInDPはdpの値であり、これは画面の密度に従って対応するピクセル値を返します。

か、次を使用することができます -

float value = valueInDP * getResources().getDisplayMetrics().density; 
+0

あなたは、これは良い機能することを確信していますか? :) – Lukap

+1

どのように逆でしょうか?ディップからpxへ、より詳細を見つけることができる場所はありますか – Lukap

+0

はい。これらのリンクを確認してください。http://stackoverflow.com/questions/2406449/does-setwidthint-pixels-use-dip-or-px and http://stackoverflow.com/questions/2238883/what-is-the-correct-wayジオメトリからJavaコードへのディメンションを指定します。 – anujprashar

0
getListView().setPadding(50,50,50,50);