アプリに異なるvalues
フォルダーを作成しています(values, values-ldpi, values-mdpi, values-hdpi, values-xhdpi, values-nodpi, values-w360dp-mdpi)
。ただし、同じカテゴリに属する一部のデバイス。ただし、画面サイズが異なります。しかし、私は デバイスの密度に応じてフォントサイズを与える を参照してください。これでは、@ PankajSharmaが提供する回答は、
res/values/dimens.xml
res/values-small/dimens.xml
res/values-normal/dimens.xml
res/values-xlarge/dimens.xml
私は私の方法と他の方法の違いは何ですか? @PankajSharmaが提供する答えは簡単だと思います。また、どちらの方法が良いか知りたいですか?
使用しているアプローチは有効なアプローチですが、少し時代遅れです。 HoneyComb
から、このすべてを修正する 新しい方法 があります。リソースフォルダーは次のようになります。
私が投稿したリンクを参照し、Smallest Width
の概念に精通してください。
お役に立てれば :)
編集:この投稿に追加して、dimens.xml
で何らかの標準化を確立してみてください。次のようなものです。
これにより、コードの保守が容易になり、さらにdimen
フォルダーの数が減ります。通常、values-hdpi
、values-xhdpi
などを持つのではなく、values-sw480dp-xhdpi
のようなファイルに調整する値がもっとあるかもしれませんが、これもすべてコンテキストに依存します。
レイアウトフォルダーに4.7インチ(hdpi)のデフォルト画面、および値フォルダーに寸法のデフォルト画面用の単一レイアウトを作成します。これはあなたのスーパーセットです。
次に、7inchデバイス用のレイアウトが必要だとしましょう。縦向きで7インチのvalues-sw600dpフォルダーを作成する
ここで、10インチデバイスのレイアウトが必要だとしましょう。values-dw720dpフォルダーを作成します。
注:-横向きの場合は、フォルダ名の前に「-land」を追加します。
次に、Xperia SP(4.7 'およびXHDPI)およびNexus 5(5 "およびXXHDPI)などの新しいデバイスがあるとしましょう。
これらの場合、values-xhdpiおよびvalues-xxhdpiフォルダーを作成し、同様にランドスケープの向きに-landを追加できます。
フォルダを作成する方法のポイントを得たことを願っています。
これで、スーパーセットがvaluesフォルダーに定義されました。ほとんどのディメンションはここからのみ使用されます。次に、他のデバイスでアプリを実行します。不一致が発生する場合は、その特定のディメンションをそれぞれの値フォルダーに追加するだけです
どのフォルダからレイアウト、画像が使用されているかを確認するには、私のトリックを使用してください。
5つの同じ文字列を作成し、次のようなすべての値フォルダーを入れます。-デフォルト画面画面4.7 XHDPI画面MDPI画面
5つのドローアブルフォルダーを作成します。それらのほとんどは既にそこにあります。
これは私のresフォルダの外観です。4.7画面以上のすべてのデバイスをサポートしています:-