32

タブレット専用レイアウトの 2 つの異なるセットを作成したいとしましょう。1 つは 600dp (7 インチ タブレット 1024x600) 用で、もう 1 つは 720dp (10 インチ タブレット 1280x720 または 1280x800) 用です。

Android 3.2 では、タブレットのレイアウトを指定できるようになりました。それは理解していますが、これがタブレット専用アプリであることを Google Play で指定する方法です。

必要な最小の最小幅を指定するには、この android:requiresSmallestWidthDp があります。結構ですが、後でガイドを読むことができます

注意: Android システムはこの属性に注意を払わないため、実行時のアプリケーションの動作には影響しません。代わりに、Google Play などのサービスでアプリケーションのフィルタリングを有効にするために使用されます。ただし、Google Play は現在 (Android 3.2 で) フィルタリング用にこの属性をサポートしていないため、アプリケーションが小さな画面をサポートしていない場合は、引き続き他のサイズ属性を使用する必要があります。

つまり、システムでは使用されず、Google Play では使用されません...つまり、基本的には役に立ちませんよね?

「アプリケーションが小さい画面をサポートしていない場合は、引き続き他のサイズ属性を使用する必要があります。

Ok。他のサイズ属性は? サポート画面の 1 ? Xlarge : 画面は 960 dp x 720 dp 以上です large : 画面は 640 dp x 480 dp 以上です

1024x600 の 7 インチ タブレットは「大きな」画面です。したがって、基本的には 640x480 解像度のレイアウトも設計する必要があります。アプリを 2 つの異なるサイズのタブレットで使用できるようにする場合は、大と特大を有効にする必要があるためです。画面。

だから私はこのようなレイアウトの2つの異なるセットを構築できると思います

res/layout-sw600dp/main_activity.xml   # For 7” tablets (600dp wide and bigger)
res/layout-sw720dp/main_activity.xml   # For 10” tablets (720dp wide and bigger)

小さな画面用のレイアウトを指定することを完全に省略しますが、アプリは小さな画面でクラッシュします。これは、エレガントではないアプリの実行を防ぐ方法です。

アプリを Google Play の 600 dp 以上の画面でのみ利用できるようにする方法はありますか? 私はかなり混乱しています。640x480 の携帯電話では Google Play でダウンロードできなかったタブレット専用アプリを作成したいと考えています。私は非常に明白な何かを見逃していると思います。

4

1 に答える 1

52

Google-PlayでICSを実行しているタブレットのみを対象にアプリをフィルタリングするには、AndroidManifestでこれを行います。

<supports-screens
        android:largeScreens="true"
        android:normalScreens="false"
        android:requiresSmallestWidthDp="600"
        android:smallScreens="false"
        android:xlargeScreens="true" />

 <uses-sdk
    android:minSdkVersion="14"
    android:targetSdkVersion="14" />

HoneyComb Tabletsも入手するには、minSdkを変更するだけです。

 <uses-sdk
    android:minSdkVersion="11"
    android:targetSdkVersion="14" />

したがって、現在言っているGingerbread(2.3)以下は、アプリをダウンロードできません(タブレットではなく、ハッキングされてもタブレットで動作するように設計されていないため)。

HoneyComb Tablets(3.0)がサポートされています(<3.2はrequiresSmallestWidth属性を無視しているため)

ハニカムを実行している電話はありません

ICSタブレットは、smallestWidth属性を参照するためサポートされています

そして最後に、ICS電話はそうではありません。なぜなら、私たちが言うように、ICSはsmallestWidth属性を使用するからです。

于 2012-05-10T19:27:17.050 に答える