2

私はフレックスに本当に慣れていません。マルチスクリーン解像度のアプリを開発したい。私は自分が何をする必要があるのか​​正確に理解できません。

私はここでこの記事を読みましたが、それでも私が何をしなければならないかはそれほど明確ではありません。

複数の解像度で同じサイズとデザインを維持する方法を誰かが説明できますか?

密度の独立性を実現するにはどうすればよいですか?

たとえば、背景画像には3つの異なる解像度が必要ですか?

背景画像はどの画面解像度にする必要がありますか?

ありがとうございました!

4

1 に答える 1

2

密度の独立性を実現し、複数の画面解像度に対応するには、可能な限りすべての画面に備える必要があります。低解像度の 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 は考慮しません。

また読む:

于 2012-11-20T16:46:52.157 に答える