95

Android には、さまざまな機能、解像度、画面サイズを持つさまざまなデバイスが付属していることを知っているため、複数の (大小) 画面をサポートするアプリケーションを開発する際には、サイズとレイアウトの障害があります。

これにより、画面サイズ、解像度、DPIのさまざまな組み合わせが発生し、Android デバイス向けの設計と開発を行う際に大きな課題が生じます。他のメーカー (Android 以外) は解像度と DPI が異なりますが、同じ画面サイズを共有し、解像度は同じ縦横比に従います。したがって、Android 以外のデバイスに合わせてイメージを作成できます。

私の質問は、要件を満たすために従うべき適切なフローまたはアーキテクチャがあるかということです。

ここに画像の説明を入力

さまざまなサイズと解像度のタブレットがあることを忘れないでください。

Android Developerにこの情報が含まれていることは承知していますが、私の見解は実装からのものです。

私の知る限りでは、Android のグラフィックスを設計するには、プログラマーでさえ設計の概念を知っていなければならないということです。

4

2 に答える 2

148

最後に、複数の画面のレイアウトとアイコンを処理する構造を作成しました。

Android は、次の 2 つのパラメーターに基づいて、デバイスの表示をカテゴリに一般化します。

  • 画面サイズ、ディスプレイの物理的なサイズ (対角線で測定)
  • 画面密度、ディスプレイの物理的なピクセル密度 (1 インチあたりのピクセル数、または ppi)`

画面サイズと密度をすばやく確認するには、Android 用 の「 What's my Size 」アプリをインストールしてください。

画面サイズ

Android では、4 つの一般化された画面サイズが定義されています。


 Qualifier           Size

 small               ~3 inches (approx) 
 normal              ~4 inches (approx) 
 large               Exceeds 4 inches    
 xlarge              Exceeds 7 inches  
  • ほとんどの電話は、小型または標準 (対角線で約 3 ~ 4 インチ) に分類されます。でも今はGalaxy S4やHTC One、Xperia Zなど大画面のスマホがたくさんあります
  • Samsung Galaxy Tab のような小型のタブレットは大型 (4 インチより大きい) に分類されます。
  • 特大サイズは、大型タブレットなどの大型デバイスに適用されます

Android では、4 つの一般化された画面密度が定義されています。


 Qualifier         Description         Nominal value

 ldpi              low density          120 ppi
 mdpi              medium density       160 ppi
 hdpi              high density         240 ppi
 xhdpi             extra high density   320 ppi

通常:

  • 画面サイズはアプリのレイアウトに最も影響を与えます
  • 画面密度は、画像とグラフィック リソースに最も影響を与えます

デバイス画面のパーセンテージの違いがここにリストされています

  • Ldpi- 75%
  • Mdpi- 100% (Android 開発者サイトによるベース)
  • HDPI- 150%
  • XHdpi- 200%

ここに画像の説明を入力

しかし、現在わかっているように、ほとんどのデバイスは480X800を搭載しているため、これをベースのデバイスと見なしているため、新しい計算では次のようになります。

  • Ldpi- 50%
  • Mdpi- 66.67%
  • hdpi-100%
  • XHdpi- 133.33%

つまり、最初のアイコンとデザインは480X800のみで作成され、次に残りのアイコン (Ldpi、Mdpi、Xhdpi) で作成されます。

すべてのレイアウトに共通で、色と形状が均一でなければならない (複雑な形状や曲線がない) 画像があるため、この種の画像を作成9patchして、「drawable(no-suffix)」フォルダーに入れます。9Patch イメージを作成するには、DrawNinePatchまたはBetterNinePatchを使用できます。

次に、Androidの標準に基づいて画像の名前を変更し、アプリケーションを完成させてhdpiから、drawable-hdpiフォルダーを取得してAdobe Photoshopを開きます(推奨)複数のサイズのアクションを作成します(パーセンテージに従ってサイズを変更するだけです)すべてのサイズのアクションを作成したら、実行しますバッチ自動化して、ソース (drawable-hdpi) と宛先 (drawable-ldpi、drawable-mdpi、drawable-xdpi) を指定します。

Photoshop を使用することをお勧めする理由は、アクションを使用して画像のサイズを自動的に変更し、ファイルの名前を変更する必要がないことです (元のファイルと同じ名前が割り当てられます)。

すべてのイメージの作成が完了したら、プロジェクトを更新してテストします。

画面(xhdpi、hdpi、mdpi)をサポートするレイアウトが小さな画面(ldpi)で切り取られる可能性があるため、これを処理するには、別のレイアウトフォルダー(layout-small)を作成して追加しますScrollView(ほとんど)。それでおしまい。

タブレット タブレットは 2 つのサイズに分類されます。

  1. 7"(1024X(600-48(ナビゲーションバー))) = 1024X552 (drawable-large)
  2. 10"(1280X(800-48(ナビゲーションバー))) = 1280X752 (drawable-xlarge)

これでは、両方の画面の画像を作成し、それに応じて配置する必要があります

したがって、全体として、複数の画面をサポートするために、アプリケーションにこのフォルダーがあります。

drawable
drawable-ldpi
drawable-mdpi
drawable-hdpi
drawable-xhdpi
drawable-large
drawable-xlarge

とのより限定的な組み合わせになりますScreen size and Screen density

drawable-large-ldpi
drawable-large-mdpi
drawable-large-hdpi
drawable-large-xhdpi

より多くの修飾子Screen density and Version

drawable-ldpi-v11
drawable-mdpi-v11
drawable-hdpi-v11
drawable-xhdpi-v11

およびより多くの修飾子Screen size and Version

drawable-large-v11
drawable-xlarge-v11

およびより多くの修飾子Smallest width concept(SW)

 drawable-sw???dp

さらに Android V3.0 Honeycomb ではSW(smallest width)、どのデバイスが画面幅に分類されるかという新しい概念が導入されました。そのため、名前が付けられたフォルダーを作成している場合drawable-sw360dp、720dp (幅または高さ) のデバイスはこのフォルダーのリソースを使用します。

たとえば、dp から drawable-sw?dp の接尾辞を見つけるにSamsung Galaxy S3 DP計算
参照して、レイアウトまたはドローアブルを S3 にサポートする場合、計算は次のようになります。

px= デバイスの幅 = 720
dpi= デバイスの密度 = 320

与えられた式

    px = dp * (dpi / 160)

px の値があるため、数式を交換します

    dp = px / (dpi / 160)

今価値を置いて、

     dp= 720 / (320/160);
     dp=360. 

だからdrawable-sw360dp仕事をする

GsmArenaからデバイス構成を取得します同じ 方法で、デバイスの Android API バージョン、つまり drawable-hdpi-v11` に従ってフォルダーを作成することもできます。これにより、API11 を備えたデバイスであり、Hdpi である場合、このリソースが使用されます。

追加のヒント:

  • 相対レイアウト、dp、sp、および mm を使用する

    dp 単位- 160 ppi 画面、つまり中密度の 1 物理ピクセルに正規化された、デバイスに依存しないピクセル。実行時にスケーリングされます。画面要素の寸法に使用

    sp units - 浮動小数点値として指定されたスケーリングされたピクセル。dp 単位に基づいていますが、ユーザーの font-size プリファレンス設定に合わせてさらにスケーリングされます。実行時にスケーリングされます。フォントサイズに使用

    レイアウトには常に RelativeLayout を使用する必要があります。AbsoluteLayout は非推奨であり、使用しないでください。

  • 適切な画像形式を使用する - PNG と JPEG

    Android "prefers" PNG for bitmap image files, "accepts" JPEG, and "discourages" GIF.

    ただし、PNG と JPEG は同等ではありません。それらにはさまざまな品質のトレードオフがあり、PNG が常に最適であるとは限りません。

    JPEGは、PNG よりもファイル サイズを最大 50% 削減できます。これは、アプリが画像を多用する場合に重要です。

    高品質の「非可逆」JPEG は、同じファイル サイズの場合、高度に圧縮された「可逆」PNG よりも見栄えがよい場合があります。

  • デバッグ用に画像やグラフィックスにラベルを追加する

  • supports-screens 要素を使用する

  • 実際のデバイス値を使用してエミュレーターを構成する

    通常、デスクトップ システムは 72ppi (Mac) または 96ppi (Windows、Linux) で表示されます。モバイルと比較すると、デスクトップ ディスプレイは常に低密度です。

    実際のデバイスの値を模倣するように Android エミュレーターを常に構成し、デバイスの密度をエミュレートするためにスケーリングするように常に設定してください。

    Eclipse では、実際のデバイスの値で構成された複数のエミュレーターを簡単に作成できます (Eclipse メニュー バーから [ウィンドウ] > [AVD マネージャー] > [新規] を選択します)。

    エミュレートしている実際のデバイスのエミュレータに名前を付けます 解像度を指定します。組み込みの一般的なサイズは使用しないでください デバイス密度を実際のデバイスに一致するように設定します ([ハードウェア] ペインで、[抽象化された LCD プロパティ] を実際の密度に設定します。常に整数値です)。

    デバイスを起動するときは、常に [表示を実際のサイズに合わせる] を選択し、実際の画面の寸法をインチで入力します。

    デバイス密度を設定しない場合、エミュレータはデフォルトで低密度になり、常に ldpi 固有のリソースをロードします。解像度 (ピクセル寸法) は正しくなりますが、密度に依存する画像リソースは意図したとおりに表示されません。

    もちろん、低密度のデスクトップ ディスプレイで高密度の画質を再現することはできません。

2012 年 10 月 1 日までの 7 日間に収集されたデータは次のとおりです。Android プラットフォームのバージョンに関する最新の統計情報を確認するには、ここにアクセスしてください。

画面サイズに基づく

ここに画像の説明を入力

画面密度に基づく

ここに画像の説明を入力

于 2012-09-04T06:42:22.320 に答える