【问题标题】:How to set different orientation changing settings on phone and tablet?如何在手机和平​​板电脑上设置不同的方向更改设置?
【发布时间】:2012-04-18 10:04:31
【问题描述】:

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

到目前为止我得到了这个代码sn-p:

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

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

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

【问题讨论】:

  • 你想为像银河笔记这样的混合体做些什么?您的代码会将它们视为“电话”。我建议您不要为用户决定什么更好,而是让它成为一个选择?也许有些用户希望能够更改纵向/横向,您可以在您的设置中制作一个“锁定”按钮,但坦率地说,即使这在操作系统中也已经存在?
  • 据我所知,galaxy note 的宽度和高度与galaxy 选项卡完全相同,因此我的代码会像处理选项卡一样处理它。对我来说很适合像银河笔记的屏幕这样大块的桌子。

标签: android-sensors android android-orientation


【解决方案1】:

您可以在 mainfest 中设置 screenOrientation

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-18
    • 2016-05-12
    • 1970-01-01
    • 2020-12-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多