我正在训练通过资源使用常量值更改清单中的screenOrientation。这是我的清单活动:
<activity
android:name="it.wrapmobile.parcosigurta.NavActivity"
android:label="@string/app_name"
android:screenOrientation="@integer/orientation" >
</activity>
我想用这个常量http://developer.android.com/reference/android/R.attr.html#screenOrientation,10英寸横向,7英寸横向,smartphonne肖像改变我的screenOrientation,所以我在3个不同的目录中创建了资源xml:
值/ integer.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<integer name="orientation">1</integer>
</resources>
值-大/ integer.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<integer name="orientation">0</integer>
</resources>
值-sw600dp / integer.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<integer name="orientation">0</integer>
</resources>
但在所有设备中,应用程序始终处于纵向状态。我错了什么? 谢谢你的帮助。
中号
答案 0 :(得分:1)
您可以检测屏幕大小并以编程方式设置方向。 这是一个例子:
public static void setActivityScreenOrientation(Activity act)
{
boolean isTablet = false;
if ((act.getResources().getConfiguration().screenLayout
& android.content.res.Configuration.SCREENLAYOUT_SIZE_MASK) == android.content.res.Configuration.SCREENLAYOUT_SIZE_LARGE)
{
isTablet = true;
}
if ((act.getResources().getConfiguration().screenLayout
& android.content.res.Configuration.SCREENLAYOUT_SIZE_MASK) == android.content.res.Configuration.SCREENLAYOUT_SIZE_XLARGE)
{
isTablet = true;
}
if (isTablet)
{
act.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
}else
{
act.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
}
}
希望它有所帮助。