2

私は、layout と layout-xlarge フォルダーに main.xml を持っています。Galaxy Note のような大画面の携帯電話では、layout-xlarge フォルダーの main.xml を使用したいと考えています。条件に基づいてコードから動的にその特定のレイアウト ファイルを使用するように Android システムをリダイレクトするにはどうすればよいですか?

例: 条件が true の場合は、layout フォルダーの main.xml ファイルを使用し、false の場合は、layout-xlarge フォルダーの main.xml を使用します。

4

3 に答える 3

2

layout -xhdpiから取得するXHDPIデバイスを使用している場合、Android システムをリダイレクトしたくない場合は、これを行うことはできません。デバイス密度に依存します。

DPI が 120dpi であるかどうかを言う - layout-ldpi

DPI は 160dpi です - layout-mdpi

DPI は 240 & 256dpi - layout-hdpi

DPI は >256dpi です - layout-xhdpi

上記の値はすべて概算です。

于 2012-08-28T12:08:49.810 に答える
1

クイックソリューション:

  1. main.xml を複製し、main_phone_large.xml のような名前を付けます。

  2. それからあなたの主な活動で。

    //whatever width you decide for 
    if(getResources().getDisplayMetrics().widthPixels > 500){
    setContentView(R.layout.main_phone_large.xml);
    }else
    setContentView(R.layout.main.xml);
    
于 2012-08-28T12:07:32.850 に答える
1

密度ごとに異なるレイアウトを提供する限り、何もする必要はありません。システムは、デバイスの画面に適合するレイアウトを自動的に選択します。また、すべての密度のレイアウトを提供する必要はありません。別のレイアウトを必要としない要素がある場合は、レイアウト フォルダーに xml を作成するだけで、すべての画面密度に使用されます。

公式ドキュメントのこのページを読むことを強くお勧めします: http://developer.android.com/guide/practices/screens_support.html

于 2012-08-28T12:09:03.550 に答える