次の構造を持つ、電話でうまく機能するシンプルなアプリがあります。
ここで、ユーザーがタブレットまたは横向きモードでアプリを使用しているときに、未使用のスペースをより有効に活用したいと考えています。このように:
onCreateでxmlレイアウトをphone_layout.xmlからtablet_layout.xmlに切り替えることができることを確認する方法(解像度またはデバイスタイプ)はありますか?
または、これにはフラグメントを使用する必要がありますか?
ありがとう。
次の構造を持つ、電話でうまく機能するシンプルなアプリがあります。
ここで、ユーザーがタブレットまたは横向きモードでアプリを使用しているときに、未使用のスペースをより有効に活用したいと考えています。このように:
onCreateでxmlレイアウトをphone_layout.xmlからtablet_layout.xmlに切り替えることができることを確認する方法(解像度またはデバイスタイプ)はありますか?
または、これにはフラグメントを使用する必要がありますか?
ありがとう。
リソース バケットを利用できます。
基本的に、2 つの異なるリソース フォルダーに同じ名前の 2 つのレイアウト ファイルを作成する必要があります。
res/layout/your_layout.xml
: これは、下記以外のデバイスのデフォルト レイアウトになります。res/layout-sw600dp/your_layout.xml
: このレイアウトは、幅が最小の 600 dp のデバイスで選択されます (タブレットはこのカテゴリに分類されます)。システムは、レイアウトに同じ名前を付けている限り、実行中のデバイスに基づいて適切なレイアウトを選択するのに十分なほどインテリジェントです.
Android ドキュメントの参照: http://developer.android.com/training/basics/supporting-devices/screens.html
同じ名前を使用して複数のレイアウトを設定できますが、画面解像度を示す別のフォルダーの下にあります (言語、画面の向き、dp などの他の構成に使用できます)。
MyProject/
res/
layout/
main.xml
layout-large/
main.xml
PSこの方法論はドローアブルに使用できます
MyProject/
res/
drawable-xhdpi/
awesomeimage.png
drawable-hdpi/
awesomeimage.png
drawable-mdpi/
awesomeimage.png
drawable-ldpi/
awesomeimage.png
タブレットの場合、/res/layout-sw600dp/activity_layout.xml
縦表示用にフォルダを作成し、/res/layout-sw600dp-land/activity_layout.xml
横表示用にフォルダを作成します。
電話機の場合は、 の通常のフォルダに加えて、横表示用/res/layout/activity_layout.xml
のフォルダをもう 1 つ追加します。/res/layout-land/
activity_layout.xml
作成したフォルダ内/drawables- sw600dp
の各画像について、/drawable-sw600dp-land
横表示用。