2016-06-29 16 views
1

ために提供「バケット」外の値を返し、PixelRatio.get()デバイス画素密度のために、次のいずれかの値を返さなければならない:)は(ネイティブPixelRatio.getを反応させる反応させネイティブドキュメントに基づいネクサス5X

- PixelRatio.get() === 1 
    mdpi Android devices (160 dpi) 
- PixelRatio.get() === 1.5 
    hdpi Android devices (240 dpi) 
- PixelRatio.get() === 2 
    iPhone 4, 4S 
    iPhone 5, 5c, 5s 
    iPhone 6 
    xhdpi Android devices (320 dpi) 
- PixelRatio.get() === 3 
    iPhone 6 plus 
    xxhdpi Android devices (480 dpi) 
- PixelRatio.get() === 3.5 
    Nexus 6 

Nexus 5xでPixelRatio.get()を呼び出すと、濃度値は2.625になります。期待されていますか?基本的な値の間の値を手動で管理するか、これはReact Nativeのバグですか?

ちなみに、私はRNのv0.24

答えて

0

を使用しているネイティブの可能性が高いだけでAndroidの密度に延期されて反応します。アンドロイドdocumentationこのよく説明:

それぞれ一般サイズ及び密度は、実際の画面サイズと密度の範囲に及びます。例えば、ノーマルのスクリーンサイズを報告する2つのデバイスは、実際のスクリーンサイズとアスペクト比が手で測定したときにわずかに異なる場合があります。同様に、hdpiの画面密度を報告する2つのデバイスは、わずかに異なる実際のピクセル密度を有する可能性がある。

Androidは実際のデバイスの密度を返します。メーカーがこれを調整する余地があるので、必ずしも正確なピクセル密度ではありません。

0

ここだが、ネイティブが正しいスケールを算出し、どのように反応するかである:

https://github.com/facebook/react-native/blob/1f8d1002ef991b66f4cac8d8b8689f27a244ac4d/Libraries/Image/AssetSourceResolver.js#L148

あなたはこのようにそれを使うだろう:それはだから、おそらくそれは、しかし、コードをコピーする方が良いでしょう

AssetSourceResolver.pickScale([1, 1.5, 2, 3], PixelRatio.getScale()) 

パブリックAPIではありません。

関連する問題