Locked History Actions

Diff for "Android/Dimension"

Differences between revisions 6 and 7
Deletions are marked like this. Additions are marked like this.
Line 38: Line 38:

これに関してまたQ&Aを発見した。

[[http://stackoverflow.com/questions/2000892/whats-the-relationship-between-pixels-and-scaled-pixels]]

Dimension

Androidの長さの単位としては以下の種類が提供されている。

例によって、これで何のことかわかる人はいないと思われる。

これらの記述からわかることは、dp, mm, in, ptはスケールが異なるだけで本質的には同じものであるということ。どのようなデバイスであっても、「1なんちゃら」は物理的に同じサイズになる。。。はずなのだが、しかし、この記述をそのまま受け入れるわけにはいかない。

これらはPC用のプログラミングをさんざんやってきた者ならわかることなのだが、マシンや実行環境からスクリーンが「160dpi」であることを取得できたとしても、実際には違っている場合が多々あるからである。そりゃそうだろう、接続されているモニタがきちんと認識できていれば可能かもしれないが、モニタの種類がわからない場合も多々あるのである。15インチかもしれないし、プロジェクタかもしれない。

Androidの場合は外部モニタは想定されていないと思われるが、それにしてもメーカー側がきちんとこの値を用意してくれなければ、これらのサイズ表記はやはり絵に描いた餅に過ぎない。したがって、この単位系の前提条件として「正しく無い解像度申告を行う端末は認めない」ということでなければならない。もちろん、このような制限をかけるのはAndroidの場合には不可能であるから(つまり、勝手な端末を製造することを禁止することはできない)、結局のところこれらは全く信用ならないということになる。

dpについて

また、dpについては「The ratio of dp-to-pixel will change with the screen density, but not necessarily in direct proportion」としているが、これは完全に意味不明。どのように変化するのか、あるいはその理由は何なのか一切説明がない。疑問を持つ人がいて当然である。

http://groups.google.co.jp/group/android-developers/browse_thread/thread/978813b2998ef439

回答者はどうも、アスペクト比が1でない場合を想定しているらしい。 つまり、ピクセルの形状が正方形ではなく長方形の場合である。 だから、必ずしもdirect proportionではないと言いたいらしいのだが、しかしそうであるならdpはin,mm,pt等と全く同じ概念であり、何ら異なるところはない。 ならば、dpが特別扱いされている理由は何なのだろうか?

spについて

spは使えそうであるが、しかしこれについても具体的な算出式が示されていないため、「1」がどのような大きさになるのか一切わからない。

これについても上記のQ&Aで「It's a setting that isn't currently exposed in preferences, allowing you to make fonts larger or smaller. If you build Spare Parts from the 1.0 source tree you can install that and use it to change the font size preference. 」 と答えられているのだが、こんなものは全く答えになっていない。

答えたくない理由があるのではないかと勘ぐりたくもなるものだ。

これに関してまたQ&Aを発見した。

http://stackoverflow.com/questions/2000892/whats-the-relationship-between-pixels-and-scaled-pixels