0

Android のドキュメント「Supporting Multiple Screens」で、Google はさまざまな画面サイズにさまざまなレイアウト スキームを採用する方法を説明しています。

res/layout/my_layout.xml  
res/layout-small/my_layout.xml  
res/layout-large/my_layout.xml  
res/layout-large-land/my_layout.xml  
res/layout-xlarge/my_layout.xml  
...

問題は、すべてのレイアウトで同じコードに到達することです。「onCreate」で使用しています:
setContentView(R.layout.my_layout); もちろん、画面サイズに応じて適切なレイアウト (xml) が呼び出されます。
私が望むのは、特大画面と小画面のレイアウトが大きく異なることです。その場合、Java コードは大きく異なります。私の質問は、コード内でこれらのケースをどのように区別するのですか? if/else を使用する必要がありますか、それとも Android で自動的に実行できますか?

4

2 に答える 2

2

私の質問は、コード内でこれらのケースをどのように区別するのですか? if/else を使用する必要がありますか、それとも Android で自動的に実行できますか?

次のような「if/elseを使用する」必要があります。

if (getResources().getConfiguration().screenLayout & Configuration.SCREENLAYOUT_SIZE_LARGE)==Configuration.SCREENLAYOUT_SIZE_LARGE) {
  // yes, we are large
}
else {
  // no, we are not
}
于 2011-04-06T23:07:01.170 に答える
0

小さな画面サイズでは起動時にナビゲーション ドロワーが開き、タブレットでは起動時に閉じたままになるようにしたかったのです。

これは私が最終的に得たコードです:

if(getResources().getConfiguration().smallestScreenWidthDp < 600){
            //Open the navigation drawer automatically
            ((DrawerLayout)    findViewById(R.id.drawer_layout)).openDrawer(GravityCompat.START);
        }else{
            //Don't do anything
        }
于 2016-06-13T14:21:18.357 に答える