web-dev-qa-db-ja.com

Androidすべてのタブレットをサポート-ドローアブルとレイアウトを分類する

私はstackoverflowでこの問題を議論している多くのスレッドを見てきました( thisthisthis など)、そして複数の画面のサポートに関するドキュメントを読みました、およびデザイン。しかし、ドローアブルのフォルダ構造とさまざまな画面のレイアウトについてはまだはっきりしていません

私はAndroid携帯電話とタブレットをサポートするアプリに取り組んでいます。そして私のプロジェクトはいくつかの画像を表示していますが、可能な限り高品質で表示する必要がありますAndroidそして、これらすべての解像度で設計するようにデザイナーに指示する必要があります。

ドキュメントから、次の解決策のためにドローアブルを追加する必要があるようです(ドローアブルフォルダ名は最後に記載されています)、

1) 240 x 320  - Phone LDPI  -> drawable-ldpi

2) 320 x 480  - Phone MDPI  -> drawable-mdpi

3) 480 x 800  - Phone HDPI  -> drawable-hdpi

//Now for tablets

4) 1024x600   - Tablet LDPI -> ??

5) 1280x800   - Tablet MDPI -> ??

6) 1536x1152  - Tablet HDPI -> ??

7) 2560x1600  - Tablet XHDPI-> ??

サポートから 複数画面のドキュメント 、次のようなフォルダを使用できるようです

1) drawable-sw600dp  ( a 7” tablet (600x1024 mdpi).)
2) drawable-sw720dp   (a 10” tablet (720x1280 mdpi, 800x1280 mdpi, etc).

しかし、解像度が1536x1152、2560x1600などのタブレットはどうでしょうか。10フィートの解像度範囲(720 x 1280など)は小さいようです。私のクライアントには解像度2560×1600のNexus 10があり、アプリに完璧に見えます。

私は、9つのパッチ画像、wrap_contentを使用したレイアウト、およびそのような他のグッドプラクティスについて知っています。しかし、このプロジェクトでは、必要に応じて、すべての一般的な画面でより鮮明に表示される画像がいくつかあり、少なくともバンドルにはそれらの画像のいくつかのバージョンが必要です。

では、デザイナーにどのような解像度を伝える必要がありますか?そして、正しいフォルダ名を付けてバンドルに分類するにはどうすればよいですか。

13
Krishnabhadra

実際、タブレットはdpiではなくサイズで分類されています。つまり、7 "タブはdrawable-largeであり、10"タブはdrawable-xlargeです。また、drawable-large-hdpiのようにdpiで分類できるようになりました。これは、高密度の7インチのタブであることを意味します。

SW最小幅の概念を使用して、それをターゲットにすることができます。 複数の画面をサポートするアプリケーションスケルトン を参照して、同じものを計算してください。

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

7 "(1024X(600-48(ナビゲーションバー)))= 1024 X 552(描画可能-大)
10 "(1280X(800-48(ナビゲーションバー)))= 1280 X 752(描画可能-xlarge)

2560x1600の場合、式を使用してSWdpを計算します

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

与えられた式

px = dp * (dpi / 160)

pxの値がある場合は、数式を交換します

dp = px / (dpi / 160)

だからdrawable-swxxxdpが仕事をします

AFAIKには、デバイスの表示には、ピクセル密度と画面サイズの2種類の変数があります。どちらも理論的には独立していますが、市場では両方ともローエンドからハイエンドデバイスまでさまざまです。

ピクセル密度には、さまざまなビットマップ解像度と詳細レベル(たとえば、36X36から96X96のアイコン)が必要です。

画面のサイズには、不動産のより良い使用が求められます(たとえば、電話のマルチアクティビティレイアウト、タブレットの断片化されたレイアウトの組み合わせなど)。ピクセル密度ほど重要ではありませんが、タブレットユーザーは電話のレイアウトがあまりにも当たり障りがなく、画面スペースを浪費する可能性があるため、持っておくとよいでしょう。

そう:

  • ほとんどのピクセル密度をカバーするには、異なる ドローアブルのバージョンldpi,mdpi,hdpi and xhdpiが必要になります。 9パッチのドローアブルを好む、これらはどこにでもフィットするのにはるかに優れています。

  • ほとんどの画面サイズをカバーするには、small,large and xlarge値に対して異なる レイアウト配置 、および レスポンシブレイアウトデザイン が必要になります。また、縦向きや横向きのレイアウトが異なる場合もあります。

  • Androidでは、構成の組み合わせを混在させることもできます。例えば。 drawable-large-hdpiなど。

  • ハードコードされたピクセルの調整と寸法は絶対に避け、密度またはパーセンテージを使用してください。

  • その異なる画面サイズに対して異なるドローアブルを持つよりも、1つの柔軟な9パッチドローアブルを持つ方がはるかに優れています

2
S.D.

Drawable-xxhdpiのようなドローアブルにxxhdpiを使用することもできます

xxhdpi(480dpi、Android 4.1以降)

または、次のリンクの「Android表形式の列」を参照してください

http://en.wikipedia.org/wiki/Smartphone

2
Sakthimuthiah

私が使用するようになったのは:

  • 1つのレイアウトフォルダー(または2番目のフォルダー:layout-land)
  • さまざまなサイズ、フォントなどのdimens.xml(-hdpi、-large、-xlarge)を含むいくつかの値フォルダー。
  • ドローアブル:-hdpiはほとんどの画像で、すべての電話で縮小されます。 -7 "タブレットの場合は大きい、-10"タブレットの場合は-xlarge。または、-hdpiと-largeだけです。

このアプローチを検証する可能性があります。つまり、-sw600dpと-sw720dpを使用しますが、今のところは機能します。

1
Yar