0

ピクセルを使用して、表面ビューに物 (ビットマップ、テキスト) を配置してきました。たとえば、何かを中央に配置するには、画面を表す長方形の幅と高さの半分を取ります。画面の幅と高さが期待どおりに返されています。私の電話 (480*800) は、利用可能な画面を 442*800、密度 1.5 と報告しており、240*320 エミュレーターで実行すると、利用可能な画面は 221*320、密度 0.75 と報告されます。すべて期待どおりです。

しかし、これらの値は確かにピクセルであるため、何かを中央に配置するには、まず半分にする前に密度係数を掛ける必要があります。奇妙なことに、低解像度のエミュレーターと私の高解像度の電話の両方で、すべてが完全に中央に配置されています。これは私には意味がありません。

両方の画面で、テキストが同じように表示されるようにするために、予想どおり、密度のスケーリングされた値を使用してサイズを設定しましたが、これは機能します。

マニフェストで、すべての画面サイズのサポートを宣言しました (ただし、これを行う前も同じ「正しい」動作が見られました)。

密度を調整しなくてもピクセル値が「機能」するのはなぜですか? 私は今とても混乱しています。

4

1 に答える 1

2

ピクセルはピクセルです!

これは、画面とサイズの最小公分母です。

密度は、測定単位 (通常は 1 インチ) に含まれるピクセル数です。物理ディスプレイで。

たとえば、物理的な幅が 5 インチ、解像度が 500x1000 の場合、密度は 200dpi (5 インチで 1000 ピクセル) になります。同じ解像度で物理的な幅が 4 インチの場合、密度は 250 dpi (4 インチで 1000 ピクセル) になります。

x=500 (幅の半分) は両方の画面の中心であり、密度とは無関係です。実際、ピクセル単位の幅の半分は、任意の密度の任意のサイズの画面の画面の中心です。

于 2013-01-03T21:35:06.997 に答える