或创建一个布尔值(从谷歌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),而您会考虑屏幕不(link with more info)
优点是你可以在运行时读取这个值&你可以有特殊的资源限定符的特例...例如您可以通过调用您的活动在运行时读取这个值:
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”
警告:将不适用于新的维德自从蜂巢以来。You can read why this method is not allowed anymore或read about working similar solution
感谢您的支持。对不起,谢谢你。 – jimsis