使用值更改清单screenOrientation

时间:2014-02-28 20:14:10

标签: android xml orientation manifest

我正在训练通过资源使用常量值更改清单中的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>

但在所有设备中,应用程序始终处于纵向状态。我错了什么? 谢谢你的帮助。

中号

1 个答案:

答案 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);
    }
}

希望它有所帮助。