通常どおり、Androidにはdpを、iosにはpt(point)を測定単位として使用します。
1 pt = 1/72インチ
1 dp = 1/160インチ
しかし、私はフラッターの測定単位は何ですか
例:
SizedBox(高さ:16.0)
または
TextStyle(fontSize:23.0)
それはちょうど2倍の数ですが、1.0(フラッター)に等しいdpまたはptはいくつですか?どのように計算されますか?
https://docs.flutter.io/flutter/Dart-ui/Window/devicePixelRatio.html から:
各論理ピクセルのデバイスピクセルの数。この数は2の累乗ではない場合があります。実際、それは整数ではないかもしれません。たとえば、Nexus 6のデバイスピクセル比は3.5です。
デバイスピクセルは、物理ピクセルとも呼ばれます。論理ピクセルは、デバイスに依存しない、または解像度に依存しないピクセルとも呼ばれます。
定義により、物理ディスプレイのセンチメートルあたり約38の論理ピクセル、またはインチあたり約96の論理ピクセルがあります。 devicePixelRatioによって返される値は、最終的にはハードウェア自体、デバイスドライバー、またはオペレーティングシステムやファームウェアに格納されているハードコードされた値のいずれかから取得され、不正確になる場合があります。
Flutterフレームワークは論理ピクセルで動作するため、このプロパティを直接処理する必要はほとんどありません。
それはすべてデバイスのピクセル比に分解されます。例えば:
var pixelRatio = MediaQuery.of(context).devicePixelRatio; // 2
次のように、SizedBox
をheight: 10
とともに使用するとします。
SizedBox(height: 10);
つまり、そのデバイスではSizedBox
は2 * 10 = 20dp
になります。