1

次の構造を持つ、電話でうまく機能するシンプルなアプリがあります。
ここに画像の説明を入力


ここで、ユーザーがタブレットまたは横向きモードでアプリを使用しているときに、未使用のスペースをより有効に活用したいと考えています。このように:

ここに画像の説明を入力


onCreateでxmlレイアウトをphone_layout.xmlからtablet_layout.xmlに切り替えることができることを確認する方法(解像度またはデバイスタイプ)はありますか?

または、これにはフラグメントを使用する必要がありますか?
ありがとう。

4

3 に答える 3

1

リソース バケットを利用できます。

基本的に、2 つの異なるリソース フォルダーに同じ名前の 2 つのレイアウト ファイルを作成する必要があります。

  • res/layout/your_layout.xml: これは、下記以外のデバイスのデフォルト レイアウトになります。
  • res/layout-sw600dp/your_layout.xml: このレイアウトは、幅が最小の 600 dp のデバイスで選択されます (タブレットはこのカテゴリに分類されます)。

システムは、レイアウトに同じ名前を付けている限り、実行中のデバイスに基づいて適切なレイアウトを選択するのに十分なほどインテリジェントです.

于 2015-05-04T15:35:13.447 に答える
1

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
于 2015-05-04T15:35:54.170 に答える
-1

タブレットの場合、/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横表示用。

https://github.com/ciromelody/MyTabletPhone

于 2019-03-17T15:04:45.267 に答える