0

我为手机和银河标签制作了一个应用程序。我只想在手机上成为纵向模式,在标签中也是纵向和横向模式。

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

        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);

我认为它会正常工作,但对于一些随机错误,它不是每次都工作.. 可以说大约十次,方向只是在手机上变为横向到一秒钟,然后又变为纵向。所以有点错误。

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

4

1 回答 1

0

您可以在 mainfest 中设置 screenOrientation

<activity
            android:name=".Dis"
            android:label="@string/app_name"
            android:screenOrientation="portrait" >
        </activity>
于 2012-04-18T10:53:29.257 回答