5

最近、Galaxy 10.1、1024x600の7インチ、480x800、高さ800のメモ、高さ720のS3用のアプリを開発しました。これらはすべて、これらの解像度で完全に実行されています。しかし、note 2 や Galaxy 7 plus などについて話すと、いくつかの問題が発生しました。これらのデバイスでは、レイアウトが正しく表示されないという問題がありました。レイアウトの問題に直面している私は、layouts-normal-xhdpi-1280x800 として、S3 layouts-normal-xhdpi-1280x720 としてメモ用にレイアウト フォルダーを使用し、すべてのレイアウトを 1 つのフォルダーに配置して、これらすべてのレイアウトをサポートする 1 つの APK を作成します。

しかし、顧客がapkをダウンロードすると、Galaxy noteがlayout-normal-xhpi-1280x720レイアウトを選択し、それは正しかったが、S3とGalaxy Note 2の密度が異なるという問題に対処します.

その問題のため、S3 と注 2 のレイアウト フォルダーを宣言する方法がわかりません。デフォルトの 4 つのフォルダーのみを使用する方法はありますか

レイアウト特大

通常の Xhdpi のレイアウト

レイアウト mdpi

hdpiをノーマルでレイアウト

S3、ノート1、ノート2、7インチプラスなどのすべての画面のこれらすべてのレイアウトをサポートしています。私が自分のプロジェクトを始めようとするとき、私はいつも、すべてのモバイルとタブで動作する「Temple Run」のような大きな有名なゲームについて考えていました。

たくさんのレイアウト フォルダを作成すると、80MB の制限を超え、Google マーケットは 50MB 未満のアプリしか受け入れないように、アプリが重くなります。

プログラム的に、レイアウト フォルダーを 1 つだけ使用し、すべての画面でこのレイアウトをサポートする方法はありますか。多くの記事とAndroid開発者ポータルを読みましたが、満足できませんでした.彼らは皆、異なる画面用に異なるレイアウトフォルダを作成する必要があると言いました.stackoverflowでさえ、私はこれらのテクニックを使用する最初のプロジェクトで時間を節約するために同じ状況を見ました.私の仕事は日々増えています。これらのレイアウトの束のためにアプリを重くせず、多数のアプリに対して多数のレイアウトを作成するのに時間を無駄にしないテクニックから始めたいと思っています。

これらの問題は、新しい開発者やその他の開発者の多くが直面しているため、多くの助けをいただければ幸いです。回答と提案が必要です。

4

1 に答える 1

2

私は自分のアプリケーションでもそのような問題に直面しています。しかし、私はこれに対する良い解決策を見つけました。のレイアウトは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はさまざまな画像のディレクトリを提供しているので、唯一のことはその解像度です。そして、あなたは上記の解決策を持っています。

于 2013-01-01T06:01:47.463 に答える