如何在手机和平​​板电脑上设置不同的方向更改设置?

时间:2012-04-18 10:04:32

标签: android-sensors android android-orientation

我为手机和galaxy tab制作应用程序。 我想在手机上只有肖像模式,在标签中也只有肖像和风景。

到目前为止,我得到了这段代码:

        public void onCreate(Bundle savedInstanceState)
        {
            DisplayMetrics dm = new DisplayMetrics();
            getWindowManager().getDefaultDisplay().getMetrics(dm);

            int width = dm.widthPixels;
            int height = dm.heightPixels;

            if(!(width>=800 && height>=1280))
            {
                setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR_PORTRAIT);
            }



            super.onCreate(savedInstanceState);
            setContentView(R.layout.mylayout);

            //... more code below

所以我只检查屏幕尺寸,如果它是平板电脑的800x1280,我什么都不做,方向改变是活跃的。如果它不是800x1280我做:

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR_PORTRAIT);

我认为它会正常工作,但对于一些随机的bug,它每次都不起作用.. 让我们说大约十次,方向只是改变为手机上的景观,然后它变回肖像。所以一辆小马车有点不对劲。

这是另一种更好的方法吗?

1 个答案:

答案 0 :(得分:0)

你可以在mainfest中设置screenOrientation

<activity
            android:name=".Dis"
            android:label="@string/app_name"
            android:screenOrientation="portrait" >
        </activity>