2013-02-20 18 views
8

Androidで2つの要素の間の距離を設定しようとしています。私が設定したマージンは1dpで、私はそれが私が望んでいた以上の距離だと思っていました。私は0.5dpがうまくいくと思った。私が試しているように、小数点にマージンを設定することは可能ですか?もしそうなら、サポートされている最小dpはいくらですか?Androidで小数点にdpを設定する

+0

あなた場合(1 MDPI表示のための論理的な密度があります)それらのすべてがint、特にマージンであるレイアウトparamの値の型を見てください。 – Triode

+0

dpは密度に依存しないピクセルを意味し、ピクセルは画面が処理できる最小のサイズです。どのように小さなサイズにすることができると思いますか?あなたが与えることができる最小の値は1pxであり、それは小さいサイズを扱うことができるようにいくつかのデバイスのマージンを減らしますが、今のところ同じサイズを反映する最小ppiデバイスで –

答えて

9

ええ、あなたは0.5dpか10進数を使用できますが、注意してください。あなたのdpがピクセルに変換されると、ディスプレイの論理密度が乗算され、切り上げられます。

dp = 0.1のhdpi表示の場合、(int)(0.1 * 1.5 + 0.5)= 1pxが得られます。

(1.5はhdpi表示のための論理的な密度がある)であれば、あなたのDP = 0.5 MDPI表示のためにあなたが得ることを(int型)(0.5×1 + 0.5)= 1pxの

+5

エラー...私はあなたの数学はオフだと思います。 (int)(0.1 * 1.5 + 0.5)=(int)(0.15 + 0.5)=(int)(0.65)= 0px。 –

+0

@StevenByleあなたの数学もオフです。それは0.75ではなく0.65;) –

+4

@AndroidKillerあなたはあなたの最初のコメントで0.75だったと言っていますが、今それは0.075でなければならないと言っていますか? Googleの "0.1 * 1.5 + 0.5"を入力するか電卓に入れて、それが0.65であることがわかります... –