または bool 値を持つカスタム リソースを作成します (google io 2012 から)
<!-- in your values/custom.xml -->
<resources>
<bool name="small_screen">true</bool>
<bool name="normal_screen">false</bool>
</resources>
<!-- in your values-sw320dp/custom.xml -->
<resources>
<bool name="small_screen">false</bool>
<bool name="normal_screen">true</bool>
</resources>
注:画面が小さくないと見なされる最小画面幅(sw320dp)を定義する必要があります(詳細情報へのリンク)
利点は、実行時にこの値を読み取ることができ、特別なリソース修飾子の特別なケースを持つことができることです...たとえば、アクティビティを呼び出すことで、実行時にこの値を読み取ることができます。
if(getResources().getBoolean(R.bool.small_screen)) {
// You have a screen which is < 320dp
} else {
// You have a screen which is >= 320dp
}
マニフェストでこのブール値リソースを使用して、小さな画面でまったく異なるアクティビティを開始することもできます
<activity android:name="SmallScreenActivity"
android:enabled="@bool/small_screen"> <!-- ENABLE FOR SMALL SCREEN -->
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name="NormalActivity"
android:enabled="@bool/normal_screen"> <!-- ENABLE FOR OTHER -->
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
このようにして、通常のケース (android:enabled="@bool/normal_screen") にアクティビティを使用し、小さな画面の android:enabled="@bool/small_screen" に特別なアクティビティを使用することができます。
警告: この方法は、ハニカム以降の新しいデバイスでは機能しません。 このメソッドが許可されなくなった理由を読むか、同様のソリューションの動作について読むことができます