42

Nexus 7:7 "1280x800

Galaxy tab 10.1 10 "1280x800

アプリを7インチと10インチのタブレットで実行したい。私の知る限り、これらのレイアウトフォルダーをアプリに含める必要があります。

7インチタブレット用

  • レイアウト-sw600dp
  • レイアウト-sw600dp-ポート

10インチタブレット用

  • レイアウト-sw720dp
  • レイアウト-sw720dp-ポート

nexus 7では正常に動作しますが、10インチタブレットにsw600dpレイアウトをロードします。

これらのデフォルトフォルダを含めると:

  • レイアウト
  • レイアウトポート

10"ギャラクシータブはこれらからレイアウトをロードします。

デフォルトのレイアウトフォルダとsw600dpフォルダのみを含めると、nexus7でクラッシュします。

10インチのギャラクシータブでsw720pレイアウトが読み込まれない場合、電話、7インチのタブレット、10インチのタブレットをどのようにサポートする必要がありますか?

編集:フォーマット

4

4 に答える 4

59

問題は、デフォルトのレイアウト フォルダーがなかったことです。

sw600dpとsw720dpのフォルダだけでなんとかやってみました。なぜ機能しないのかはまだわかりませんが、気にしません。とにかく、swxxxdp <3.2 を使用できないので、それを台無しにしてください。

したがって、電話 (2.2+)、7 インチ タブレット、および 10 インチ タブレットをサポートする必要があるアプリを作成する場合は、次の古い学校のものを使用します。

レイアウトこれはデフォルトです。電話をサポートする予定がない場合でも必要です。

7 インチ タブレット用のlayout-large (エミュレーターと nexus7 で動作)

10 インチ タブレット用のlayout-xlarge (エミュレーターと galaxytab10.1 で動作)

他の人も同じ結論に達しています。

于 2013-02-27T13:56:40.420 に答える
21

私は自分のアプリケーションでもそのような問題に直面しています。しかし、私はこれに対する良い解決策を見つけました。のレイアウトは1つだけでtablet、ディレクトリ名はlayout-sw600dpです。さて、高さと幅の問題が発生したとき、私はいくつかの異なるvaluesディレクトリを作成し、そこにスタブやその他のスタブを配置dimensionsfont sizeました。したがって、タブレット画面にはconstant価値がありません。layout

androd:layout_width:"60dp" // i drop this scenario

androd:layout_width:"@dimen/tab_width" // i used this scenario

valuesディレクトリ名は次のようになります

values-xlarge
values-large

すべての値は、valuesディレクトリからフェッチされます。別のレイアウトは作成されませんが、1つのレイアウトを複数回使用できます。

以下はDeveloper.androidサイトの言葉です。構成例

さまざまなタイプのデバイスのデザインの一部をターゲットにするのに役立つように、一般的な画面幅の数値を次に示します。

320dp: a typical phone screen (240x320 ldpi, 320x480 mdpi, 480x800 hdpi, etc).
480dp: a tweener tablet like the Streak (480x800 mdpi).
600dp: a 7” tablet (600x1024 mdpi).
720dp: a 10” tablet (720x1280 mdpi, 800x1280 mdpi, etc).

表2のサイズ修飾子を使用すると、アプリケーションは、幅や高さの任意の数を使用して、受話器とタブレットのさまざまなレイアウトリソースを切り替えることができます。たとえば、600dpがタブレットレイアウトでサポートされている利用可能な最小幅である場合、次の2セットのレイアウトを提供できます。

res / layout / main_activity.xml#ハンドセットの場合
res / layout-sw600dp / main_activity.xml#タブレットの場合

===

これで、1280 * 720のレイアウトが下にあることがわかります。layout-sw720dp作成する代わりに、layout-normal-xlarge違いを判断できるこの機能を使用する必要があります。layout-large-mdpiとを使用して別の方法で識別するのではなく、layout-large-ldpiそれだけで識別しsmallest widthませんか?なぜなら、Androiddrawablesはさまざまな画像のディレクトリを提供しているので、唯一のことはその解像度です。そして、あなたは上記の解決策を持っています。

編集

次に、さまざまなレイアウトを開発する必要があります。他のオプションはありません。http://jamil.fluidsoul.net/2011/03/06/creating-android-applications-for-multiple-screen-sizesで見つけました。

Low density Small screens QVGA 240x320 (120dpi):

layout-small-ldpi (240x320)  
layout-small-land-ldpi (320x240)

Low density Normal screens WVGA400 240x400 (x432) (120dpi):

layout-ldpi  (240 x 400 )
layout-land-ldpi  (400 x 240 )

Medium density Normal screens HVGA 320x480 (160dpi):

layout-mdpi (320 x 480 )
layout-land-mdpi (480 x 320 )

Medium density Large screens HVGA 320x480 (160dpi):

layout-large-mdpi (320 x 480 )
layout-large-land-mdpi (480 x 320)

Galaxy Tab ( 240 dpi ):

layout-large  (600 x 1024) 
layout-large-land  (1024 x 600)

High density Normal screens WVGA800 480x800 (x854) (240 dpi):

layout-hdpi (480 x 800)
layout-land-hdpi (800 x 480)

Xoom (medium density large but 1280x800 res) (160 dpi):

layout-xlarge (800 x 1280)
layout-xlarge-land (1280 x 800)
于 2013-02-26T14:11:27.620 に答える
1

あなたは正しいことをしているので、これは非常に奇妙です。

Nexus 7
では、sw600dp 修飾子を選択する必要があります。使用可能な場合は、Galaxy Tab で sw720dp 修飾子を選択する必要があります。

適切なレイアウトを見つけようとするとクラッシュしますか? Android は正しいレイアウトを検出する場合がありますが、レイアウト xml ファイル内の何かが欠落している可能性があり、それが原因でクラッシュが発生します。

于 2013-02-26T15:44:50.600 に答える