それはAndroidが dpユニットから pxユニットに変換するために使用する公式は以下の通りです:
px = dp * (dpi/160)
たとえば、dpiが240の場合、px = 1.5となります(私は1つのdpピクセルを計算しています)
しかし、ここでは1.5と正確に何を意味していますか? pxユニットが実際に物理デバイスのピクセルになったら、Androidは1または2ピクセルを描画しますか?
それはAndroidが dpユニットから pxユニットに変換するために使用する公式は以下の通りです:
px = dp * (dpi/160)
たとえば、dpiが240の場合、px = 1.5となります(私は1つのdpピクセルを計算しています)
しかし、ここでは1.5と正確に何を意味していますか? pxユニットが実際に物理デバイスのピクセルになったら、Androidは1または2ピクセルを描画しますか?
状況によって異なります。 DP値がサイズを意味文脈で使用される場合
、android:layout_width
属性のような、Resources.getDimensionPixelSize()について記載したロジックが使用されます。すなわち、PX値は、がPX> 0の場合DP値である場合、実際の値は、少なくとも1
なること特別な場合に、最も近い整数値に四捨五入されていますInset Drawableのandroid:insetLeft
属性のように、オフセットを意味するコンテキストで使用される場合は、Resources.getDimensionPixelOffset()のロジックが使用されます。つまり、pxの値は単純に整数値に切り捨てられます。
Shape Drawableの<stroke/>
タグのandroid:dashWidth
属性のように、変更されていない浮動小数点値が使用されることがありますが、これはまれです。通常、浮動小数点値を使用することができたとしても、サイズロジックまたはオフセットロジックが使用されます。
私が読んだことが正しい場合、1.5pxは単一の '1'ピクセルが指定された色であることを意味し、それを囲むピクセルの.5は '1'ピクセルと次のピクセルそれに。
など。
| | AB | B |
Aは1.5pxであり、Bは1.5xであるため、中間のピクセルは両方の混合です。
だから、お互いに次の二つのピクセルが1ピクセル表示
と例えば一緒にブレンドされる、ことを利用し| X | Y |
今や1.5pxディスプレイの場合:
| XY | YX |両方のミックスになります! Xとして設定されているピクセルは、ピクセルセットYよりもXになります。
これは興味深いですが、記事の内容とは異なると思います。色については何も言わない。私は彼らが1.5が本当に意味するものを言うのを忘れたと思う。私はこれを言いたくないが、これはAppleが好きなところだ。彼らのドキュメントはずっと正確です! –
ああ、私はAndroidのドキュメントからそれを読んでいない。これは、多くの最新のOSやその他のアプリケーションの共通の機能です。たとえば、ウェブ上では1.5pxになることがあり、非常に頻繁に使用されます。ブラウザは、私が記述したものと同様のものを計算します。 – Micky
pxは1ピクセルです。フォントサイズにspを使用し、それ以外にはdipを使用する、スケールに依存しないピクセル(sp)と密度に依存しないピクセル(dip)
int型valueInPx =(INT)TypedValue.applyDimension:私はそれはそれ原因最善の解決策」になると思い
ディップここから== DP
http://developer.android.com/guide/topics/resources/more-resources.html#Dimension
px
Pixels - corresponds to actual pixels on the screen.
in
Inches - based on the physical size of the screen.
mm
Millimeters - based on the physical size of the screen.
pt
Points - 1/72 of an inch based on the physical size of the screen.
dp
Density-independent Pixels - an abstract unit that is based on the physical density of the screen. These units are relative to a 160 dpi screen, so one dp is one pixel on a 160 dpi screen. The ratio of dp-to-pixel will change with the screen density, but not necessarily in direct proportion. Note: The compiler accepts both "dip" and "dp", though "dp" is more consistent with "sp".
sp
Scale-independent Pixels - this is like the dp unit, but it is also scaled by the user's font size preference. It is recommend you use this unit when specifying font sizes, so they will be adjusted for both the screen density and user's preference.
は、標準的な方法であり、 ( TypedValue.COMPLEX_UNIT_PX、valueInDp、getResources()。getDisplayMetrics());
ハム、それは私が探していたものです!私はなぜドキュメントがこれを示していないのだろう...マーティンありがとう! –