密度の独立性を実現し、複数の画面解像度に対応するには、可能な限りすべての画面に備える必要があります。低解像度の iPhone 3/GS から超高解像度の Nexus 10 まで。背景画像に必要な特定の画面解像度はありません。何百もの解像度が必要になるからです。
背景を一定の解像度にする代わりに、コードで構築することを検討してください。反復可能なタイルを使用するか、複数の画像を使用してそれらを組み合わせて背景を形成します。
Adobe 解像度 (160dpi、240dpi、および 320dpi) ごとに 1 つの画像を使用することをお勧めします。これを使用してそれを行うことができます:
<s:Image>
<s:source>
<s:MultiDPIBitmapSource
source160dpi="@Embed('assets/ui/images/phone/info-image-160.png')"
source240dpi="@Embed('assets/ui/images/phone/info-image-240.png')"
source320dpi="@Embed('assets/ui/images/phone/info-image-320.png')" />
</s:source>
</s:Image>
すべてをベクトルで作成したと仮定すると、これは比較的単純です。160 用に設計した画像 (ほとんどの人が設計するようです) を取り、240 dpi の場合は 150%、320 dpi の場合は 200% に拡大します。
applicationDPI
真の密度非依存性のために、特定の解像度を強制するため、アプリケーション タグで使用していないことを確認する必要もあります。
CSS の場合は、この形式に従う必要があります (以下の最初のリンクから直接取得)。
@media (application-dpi: 160) {
s|Button {
fontSize: 10;
}
}
/* IOS only @ 240dpi */
@media (application-dpi: 240) and (os-platform: "IOS") {
s|Button {
fontSize: 11;
}
}
/* IOS at 160dpi or Android @ 160dpi */
@media (os-platform: "IOS") and (application-dpi:160), (os-platform: "ANDROID") and (application-dpi: 160) {
s|Button {
fontSize: 13;
}
}
すべてを考慮する必要があります。画像、フォント/フォントサイズ、コンポーネントのサイジング、ハードコードされたコンポーネントの配置など。Capabilities
実行時にどのような種類のデータを利用できるかについて、クラスを調べることもできます。stage.stageHeight などを使用して誤った値が得られる場合は、FlexGlobals.topApplication.sys(tem?)Manager.screen.height
代わりに使用することを検討してください。これは DPI を考慮しますが、stageHeight は考慮しません。
また読む: