2011-08-13 9 views
6

ギャラクシータブの画面解像度(ポートレートモード)が600pxで、画面の幅が3.55inchの場合、画面の密度は600/3.55 = 169 dpiになります。ことを知り、心にデバイス非依存ピクセル(DP)が計算される方法(http://developer.android.com/guide/practices/screens_support.html)を保つ:サムスンギャラクシータブの画面の密度を理解する

px = dp * (dpi/160); 
600 = dp * (169/160); 
dip = 568 

だから位置0から始まる幅568dp(デバイス非依存ピクセル)の水平線を描画する正確幅と一致する必要があります画面のしかし、デバイスでこれを試すと、画面の幅が400dpであることがわかります。私は再び同じ式を使用しますが、解像度を得るためになります。

600 = 400 * (dpi/160); 
dpi = 240 

だからそれ以外のパラメータが対応することが一つの物理ピクセルがより「ドット」で構成されていることを意味し、240dpi3.55inch画面幅と600pixelsを持ちます幅は852pixel (3.55*240)です。

私は、dpiは1インチあたりのドット数を意味すると考えました。しかし、これは真実ではないようです...

が後で追加されました:
これ(http://developer.android.com/guide/topics/resources/more-resources.html#Dimension)は言う:

160dpは関係なく、画面密度の

どの常に1インチであります真実ではない。私が求めていた理由は、ルールに違反すると160dp = 1inchが制御幅を指定する場合は、例えばするという事実につながることがあることである
Difference between android dimension: pt and dp

も後で追加しました:ちょうどこのから測定ソースをチェック...それは本当に必要な、あなたは600x1024px画面から期待するものその後、はるかに大きいということは、ギャラクシータブの上にはるかに大きな部分をカバーします明確化 BR ステン

+0

dipとデバイスに依存しないピクセルとdpiを混同している可能性があります。 – Petrus

+0

こんにちは、私が間違ってやっていることを具体的にすることはできますか?私はどこでミスをしたのですか? – STeN

+0

私は誤って投稿したかもしれませんが、おそらくをチェックしたいと考えています。私はあなたの計算から期待している密度を返さないかもしれないと思います。私はあなたの数学をチェックアウトhavent、しかし、密度は169ではなく160であれば多分一緒に来る? – Petrus

答えて

8

ギャラクシータブ(7" )doesnのための

感謝を320dp 「Tはその真密度を報告し、以下の記事を読んで、この問題を理解するために:。

http://realmike.org/blog/2010/12/21/multiple-screen-sizes-with-processing-for-android/

どうやら、それは彼らが銀河をしたとき、サムスンが見つけたものもありますタブ。 Galaxy Tabには7インチ、1024×600の画面と170 dpiがあります。ただし、 タブの密度は「mdpi」ではなく「hdpi」とレポートされますので、 というレイアウトは2番目のスクリーンショットとまったく同じように見えます。彼らが "mdpi"を使用していた場合、 のアイコンは.28 "幅で、" hdpi "であり、幅は.42"で大きくないので、 の取引であり、レイアウトはこのように見えます。

この記事には、問題を理解するためのイメージがいくつか含まれています。

+1

こんにちは、いい記事ですが、ウィジェットのサイズを正しく指定する方法は?デバイスが実際の密度を報告している限り、dpの使用はうまくいくと思われますが、Galaxy-Tabのような擬似密度ではありません。 – STeN

+0

dpを使用して指定する必要があります。 Galaxy Tabは、実際の密度を使用した場合に表示されるよりも大きなオブジェクトを表示しますが、サムスンはこれがより良い結果をもたらすと考えています。その投稿の画像で判断すると、私はサムスンに同意します!また、以下のヒントに従ってください:http://developer.android.com/guide/practices/screens_support.html#screen-independence –

+0

これは、Androidのマニュアルが** 160dp = 1inch **と言って間違っていると思います。これは本当に誤解を招く。また、dpiが、描画可能なソースを選択する最良の方法ではないかもしれないと思われます。なぜなら、pseduo密度(論理密度)を使用すると画面サイズを考慮しないためです。 ** DisplayMetrics **クラスを試してみると、1インチあたりの正確な物理ピクセル数(つまり169 dpi)と論理密度が返されます。 – STeN

関連する問題