Android-異なるデバイスをサポート-異なる画面をサポート

4099 ワード

Androidは全体的に2つの種類によってデバイス画面を分類します:サイズと解像度.appをデバイス上で実行するには、サイズと解像度を考慮する必要があります.同様に、appを異なる画面サイズと解像度に適応させるために、異なるリソースを含める必要があります.
  • 全体に4つのサイズがあります:小さい、正常な、大きい、スーパー大きい
  • と4つの解像度:低解像度(ldpi),中解像度(mdpi),高解像度(hdpi),超高解像度(xhdpi)
  • 異なる画面の異なるレイアウトと突然変異を宣言するには、異なるリソースを異なるフォルダの下に置く必要があります.異なる言語を処理する方法と同じです.
    同様に、画面の大きさを考慮する際にも画面の方向(縦画面)を考慮する必要があるため、多くのappはユーザー体験を最適化するために各方向にレイアウトを調整する必要がある.
    異なるレイアウトを作成
    異なるスクリーンサイズでユーザー体験を最適化するには、サポートするスクリーンサイズごとにxmlファイルを個別に作成する必要があります.各レイアウトは、対応するリソースフォルダに保存され、接尾辞の最後.たとえば、大画面に作成されたレイアウトファイルにはres/layout-largeが存在するはずです.
    注意:Androidは自動的にレイアウトを伸ばして画面に適応します.異なる画面のサイズのレイアウトでは、UIコントロールの絶対サイズを考慮する必要はなく、ユーザー体験に影響を与えるレイアウト構造(例えば、サブviewのサイズと位置に対して重要なview)に注意を払うことができます.
    たとえば、このプロジェクトにはデフォルトのレイアウトと大画面のレイアウトが含まれています.
    MyProject/
            res/
                  layout/
                         main.xml
                  layout-large/
                         main.xml
    ファイル名は完全に同じでなければなりません.画面サイズの異なるUIに適応するために、コンテンツは異なります.
    appではいつものようにlayoutファイルを参照します
    1 @Override
    
    2  protected void onCreate(Bundle savedInstanceState) {
    
    3      super.onCreate(savedInstanceState);
    
    4      setContentView(R.layout.main);
    
    5 }

    システムはappが実行する画面サイズに基づいて、対応するレイアウトフォルダからレイアウトファイルをロードします.Androidが適切なリソースをどのように選択するかについては、Providing Resourcesで説明しています.
    もう1つの例では、このエンジニアリングは、クロススクリーンのレイアウトリソースをどのように選択するかです.
    MyProject/
            res/
                  layout/
                         main.xml
                  layout-land/
                         main.xml
    デフォルトではxmlファイルは縦画面で使用されます.
    横画面に特別なレイアウトが必要で、大きな画面も含まれている場合は、largeとlandで識別する必要があります.
    MyProject/
            res/
                  layout/                            #default(portrait)
                         main.xml
                  layout-land/                     #landscape
                         main.xml
                  layout-large/                     #large(portrait)
                         main.xml
                  layout-large-land/              #large landscape
                         main.xml
    注意:Android 3.2以上のバージョンでは、スクリーンサイズを定義する高度な方法がサポートされています.要素の高さを最小限に抑えて幅を広くして、スクリーンサイズのリソースを定義できます.ここではこの新しい技術に下がることはありません.詳細については、Designing for Multiple Screensを参照してください.
    別の画像を作成
    各解像度に適切なストレッチ可能な画像リソースを提供する必要があります.これにより、さまざまな解像度のスクリーンで優れた描画品質と効果を達成することができます.
    これらのピクチャを生成するには、ベクトルマップを提供し、次の各解像度にピクチャを提供する必要があります.
  • xhdpi:2.0
  • hdpi:1.5
  • mdpi:1.0(baseline)
  • ldpi:0.75

  • すなわち、xhdpiデバイスに200*200のピクチャを提供する場合、他の解像度に同じリソースを提供するべきである:150*150 for hdpi、100*100 for mdpi、75*75 for ldpi.
    次に、これらのファイルを対応するリソースフォルダの下に置きます.
    MyProject/
            res/
                  drawable-xhdpi/
                         awesomeimage.png
                  drawable-hdpi/
                         awesomeimage.png
                  drawable-mdpi/
                         awesomeimage.png
                  drawable-ldpi/
                         awesomeimage.png
    @drawable/awesomeimageを参照すると、画面解像度に応じて適切な画像が選択されます.
    注意:低解像度(ldpi)のリソースは必ずしも必要ではありません.hdpiリソースを提供すると、ldpi画面に適応するために半分縮小されます.
    詳細については、appにiconの説明を参照してください.Iconography design guideを参照してください.
     
    下一篇:Android-異なるデバイスをサポート-異なる言語をサポート
    上一篇:Android-支持不同的设备-支持不同的平台版本